动态调用DLL的问题呀
我如下动态调用一DLL时
库里的程序能正确执行
Command里的命令是
MessageBox(0,"A","dll call",0);
但我一点击确定后
程序出错,出错代码为:
Debug Error!
Program:............
Module:
File:i386\chkesp.c
Line:42
The value of ESP was not properly saved across a function all, the is
usually a result of calling a function declared with one calling convention with a function pointer declared with a different calloing converntion.
///////////////////////////////////////////////////
程序代码如下:
HMODULE fp;
typedef int (*PROC1)(int);
if(1)
{
fp = LoadLibrary("c.dll");
PROC1 proc = (PROC1)GetProcAddress(fp, "Command");
int a = (*proc)(0);
}
FreeLibrary(fp);
////////////////////////
程序代码如下时不会出任何的错误:
HMODULE fp;
typedef int (*PROC1)();
if(1)
{
fp = LoadLibrary("c.dll");
PROC1 proc = (PROC1)GetProcAddress(fp, "Command");
int a = (*proc)();
}
FreeLibrary(fp);
/////////////////////////////////////////
WHYWHYWHYWHYWHYWHYWHYWHYWHYWHYWHYWHYWHYWHYWHYWHYWHY