我的DLL是用VC建立的win32 dll工程
我用下面的方法在DLL里声明了一个函数
extern "C" _declspec(dllexport) bool WINAPI SetData (char *ch1, char *ch2);bool WINAPI SetData(char *ch1, char *ch2)
{
......
}在另一个程序里用如下方法调用,但SetData总是返回NULL,我不加WINAPI就可以,这是为什么?
typedef bool (WINAPI SETDATA)(char *ch1, char* ch2);
SETDATA *SetData;
hInstance = ::LoadLibrary("test.dll");
if(hInstance == NULL) {
MessageBox("load dll error");
return false;
} SetData = (WINAPI SETDATA *)::GetProcAddress(hInstance, "SetData");
if(SetData == NULL)
return false;
我用下面的方法在DLL里声明了一个函数
extern "C" _declspec(dllexport) bool WINAPI SetData (char *ch1, char *ch2);bool WINAPI SetData(char *ch1, char *ch2)
{
......
}在另一个程序里用如下方法调用,但SetData总是返回NULL,我不加WINAPI就可以,这是为什么?
typedef bool (WINAPI SETDATA)(char *ch1, char* ch2);
SETDATA *SetData;
hInstance = ::LoadLibrary("test.dll");
if(hInstance == NULL) {
MessageBox("load dll error");
return false;
} SetData = (WINAPI SETDATA *)::GetProcAddress(hInstance, "SetData");
if(SetData == NULL)
return false;
http://dev.csdn.net/develop/article/25/25141.shtm
http://dev.csdn.net/develop/article/25/25142.shtm
http://dev.csdn.net/develop/article/25/25143.shtm
http://dev.csdn.net/develop/article/31/31511.shtm
http://dev.csdn.net/develop/article/52/52485.shtm
这个声明有问题吧
SetData = (WINAPI SETDATA *)::GetProcAddress(hInstance, "SetData");
这一条是笔误,这样做的话编译通不过的,应该为
SetData = (SETDATA *)::GetProcAddress(hInstance, "SetData"); To tyzyx:
这样声明有错误,错在哪儿?
这么定义是为了...
extern "C" _declspec(dllexport) bool SetData (char *ch1, char *ch2);