Release 版 动态加载DLL 失败

123liuxiao   2009-5-5 16:48 楼主
代码
1  CString strMoudle;
2  m_ctlDeviceName.GetWindowTextW(strMoudle);
3  strMoudle = GetIniInfo(strMoudle);  //根据strMoudle找到其对应的DLL名,就是读配置文件。次函数正常
                                            //strMoudle 的长度7,得到的值长度17。
4  m_hdll = LoadLibraryW(strMoudle);

....
Debug一切正常
当Load时函数直接退出了,LoadLibrary后面的代码不执行了。
如果我把第二行和第三行注释掉,Load时直接写我要在的DLL名,
这样能加载就成功。或者我给strMoudle一个初值,且长度大于等于8,这样也能成功。
为什么会这样能,我另外一处装在DLL的地方刚运行可以成功装在,此处失败后他也失败
代码就是直接loadlibrary。另外m_hdll在调用LoadLibrary前已经初始化为空。
为什么会这样呢?帮我解释下吧。

回复评论 (4)

打印strMoudle的值,看看是否正确?
点赞  2009-5-5 17:01
显示了,是正确的
我还特意让程序去加载一个不存在的DLL结果返回NULL;
可我现在的错误是程序退出....
点赞  2009-5-5 17:12
错了 是函数退出不是程序退出
点赞  2009-5-5 17:13
点赞  2009-5-5 18:07
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复