У меня есть файл example.cpp, который включает example.h в Windows. В файле example.h есть функция, объявленная как
//example.h
_EXTERN S16BIT _DECL function();
Функция извлечена из DLL. В моем файле example.cpp у меня есть класс myclass
что я хочу назвать function()
из функции-члена класса classfunc()
так,
//example.cpp
class myclass{
public:
classfunc(){
function();
}
}
Он хорошо компилируется, но при запуске выдает исключение нарушения прав доступа. Я знаю, что это неправильно, но не знаю решения.
EDITED: _EXTERN определяется как пустое;
#define _EXTERN
_DECL определяется как;
#define _DECL __stdcall
S16BIT 2 байта
Кажется, вы хотели бы вызвать / потреблять чистую функцию C, function (), из DLL.
Обратите внимание, что __stdcall
это соглашение о вызовах для функций C ++, вы должны использовать __cdecl
В вашем h файле объявите вашу функцию следующим образом
extern "C" __declspec( dllexport ) signed short function();
Других решений пока нет …