我有一个example.cpp文件,其中包含Windows中的example.h。在文件example.h中有一个声明为
的函数 //example.h
_EXTERN S16BIT _DECL function();
该函数从DLL中删除。在我的example.cpp文件中,我有一个类myclass
,我想从类function()
的成员函数调用classfunc()
,所以,
//example.cpp
class myclass{
public:
classfunc(){
function();
}
}
它编译得很好但是当它运行时它会给我一个访问冲突异常。我知道这是错的,但不知道解决方案。
已编辑:_EXTERN被定义为空;
#define _EXTERN
_DECL定义为;
#define _DECL __stdcall
S16BIT 2个字节
答案 0 :(得分:0)
似乎你想从DLL中调用/使用纯C函数,function()。
请注意__stdcall
是C ++函数的调用约定,您应该使用__cdecl
在你的h文件中声明你的函数
extern "C" __declspec( dllexport ) signed short function();