首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

dll的一个小疑点

2012-01-18 
dll的一个小问题!dll中导出的一个函数:BOOLtest(char*ch){printf( %s\n ,ch)free(ch)returntrue}在ex

dll的一个小问题!
dll中导出的一个函数:
BOOL   test(char   *ch)
{
printf( "%s\n ",ch);
free(ch);
return   true;
}
在exe中调用:
typedef   BOOL   (_stdcall   *lptest)(char   *szFileToStart);
HMODULE   hModule=LoadLibrary(dllname);
char   szAlgPath[256];
strcpy(szAlgPath, "c:\\calc.exe ");
lptest     test;
test=(lptest)GetProcAddress(hModule, "test ");
test(szAlgPath);
为什么总是报错呢?提示当函数调用时,esp的值没有正确的保存.



[解决办法]
szAlgPath这个数组不可free!
free(ch);不应该放在test函数里面,否则你这个函数对参数ch就有了较高的要求,比如至少它应该是可free的!

热点排行