_stdcall等函数的声明与调用
有个动态库test.dll中有声明:
extern "C"
{
_declspec(dllexport) bool _stdcall f1(int a,int b);
_declspec(dllexport) bool _stdcall f2();
}
调用的时候:
采用动态加载:
HANDLE h=LoadLibraryEx("test",NULL,0);
声明函数指针:
bool (*f1)(int,int);//总觉得少个_stdcall,因为vc默认_cdcall;
bool (*f2)();//总觉得少个_stdcall;
f1=(bool (*))(int,int)GetProcAddress(h,"f1");
f2=(bool (*))GetProcAddress(h,"f2");
编译链接时好像没问题,但调试时执行f时老报错,好像有关参数压栈的错误。我知道约束和参数压栈有关系,但不知道具体哪错误了。还有就是如果没参数,f2运行时不会报错。