我有一个example.cpp文件,其中包括Windows中的example.h。在文件example.h中有一个声明为
的函数 //example.h
_EXTERN S16BIT _DECL function();
函数是从DLL外部的。在example。cpp文件中,我有一个类myclass
,我想从类classfunc()
的成员函数中调用function()
,因此,
//example.cpp
class myclass{
public:
classfunc(){
function();
}
}
它编译得很好,但是当它运行时,它给了我一个访问冲突异常。我知道这是错误的,但不知道解决办法。
编辑:_EXTERN被定义为空;
#define _EXTERN
_DECL被定义为;
#define _DECL __stdcall
S16BIT 2 bytes
似乎你想调用/消费纯C函数,function(),从DLL。请注意,__stdcall
是c++函数的调用约定,您应该使用__cdecl
在你的h文件中像这样声明你的函数
extern "C" __declspec( dllexport ) signed short function();