我有个DLL,其中有个函数声明为
__declspec(dllexport) long WINAPI convert(char*str1 ,char* str2);想调用这个函数,我是这样做的:
1,typedef long (WINAPI * PGETDIBPROC)(char*,char*);
2,HINSTANCE hConvertLib = LoadLibrary("Convert.dll");
PGETDIBPROC lpFun;
3,lpFun = (PGETDIBPROC)(GetProcAddress(hConvertLib, "Jpg2BMP"));
4,(*lpFun) (buf1,buf2);其中 char buf1[256];char buf2[256]; 程序运行到第3步的时候lpFun的地址是0xcccccccc,可是当运行到第4步的时候lpFun就变成了0x00000000,请各位大哥大姐帮帮忙,谢谢了!
__declspec(dllexport) long WINAPI convert(char*str1 ,char* str2);想调用这个函数,我是这样做的:
1,typedef long (WINAPI * PGETDIBPROC)(char*,char*);
2,HINSTANCE hConvertLib = LoadLibrary("Convert.dll");
PGETDIBPROC lpFun;
3,lpFun = (PGETDIBPROC)(GetProcAddress(hConvertLib, "Jpg2BMP"));
4,(*lpFun) (buf1,buf2);其中 char buf1[256];char buf2[256]; 程序运行到第3步的时候lpFun的地址是0xcccccccc,可是当运行到第4步的时候lpFun就变成了0x00000000,请各位大哥大姐帮帮忙,谢谢了!
怎么:lpFun = (PGETDIBPROC)(GetProcAddress(hConvertLib, "Jpg2BMP"))?
可是当运行到第4步的时候lpFun就变成了0x00000000//GetProcAddress调用失败了。
失败时的错误代码是多少?
==》
lpFun = (PGETDIBPROC)(GetProcAddress(hConvertLib, "convert"));函数名字 ...
没有这样的函数,(或者类型不匹配)
GetProcAddress 函数出错,
返回NULL,
就是 0x00000000 ....
应该是lpFun = (PGETDIBPROC)(GetProcAddress(hConvertLib, "convert"));
不好意思~!