Здравствуйте, Ракопаукодав, Вы писали:
Р>Здравствуйте, _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();