Re[3]: Как импортировать функцию stdcall
От: _nn_  
Дата: 08.07.06 11:06
Оценка:
Здравствуйте, Ракопаукодав, Вы писали:

Р>Здравствуйте, _nn_, Вы писали:


__>>Здравствуйте, Ракопаукодав, Вы писали:


Р>>>Простите за глупый вопрос, ситуация такая:


Р>>>нужно в VS2005 импортировать из dll функцию stdcall, однако при запуске программы он вместо функции Func ищет функцию, типа ?Func@XXZZYYA.

Р>>>Использование директивы extern "C" не проходит, так как вызвать нужно именно stdcall

__>>Нужно, чтобы при определении и при использовании сигнатуры совпадали.


__>>
__>>// В Dll
__>>extern "C" __declspec(dllexport) void __stdcall Func()
__>>{
__>>}

__>>// В Exe
__>>extern "C" __declspec(dllimport) void __stdcall Func();
__>>


Р>Невозможно. К тому же когда так определяешь, всё равно получается что-то типа ?Func@XA. А в dll (не моей) функция определена именно как sdtcall с экспортным именем Func


Можно и так:
typedef void (__stdcall * func_type)();
func_type Func = reinterpret_cast<func_type>(GetProcAddress(dll, "Func"));

Func();
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.