当前位置: 代码迷 >> VC/MFC >> LoadLibrary()返回值为NULL,解决方法
  详细解决方案

LoadLibrary()返回值为NULL,解决方法

热度:443   发布时间:2016-05-02 03:46:41.0
LoadLibrary()返回值为NULL,急!
在下在公司做的软件使用vc6平台进行开发,因为要使用到vs2008中的CImage类来保存图片,所以使用vs2008将CImage封装成一个CImage.dll,再由VC6的软件进行调用,调用代码如下:

HINSTANCE hInst;
typedef int (_stdcall *p_CImage)(HBITMAP, CString);//定义函数指针类型
p_CImage CImage;
hInst=LoadLibrary("CImage.dll");//动态加载Dll
if (hInst==NULL)
{
MessageBox("未找到CImage.dll");
return;
}
CImage=(p_CImage)GetProcAddress(hInst,"CImage");//获取Dll的导出函数
CImage(bitmap, fileName);
FreeLibrary(hInst);

这个软件在所有XP系统和大部分Win7 32位系统都能运行,在少数Win7 32位系统不能正常运行,提示为找不到dll,hinst返回值为NULL,GetLastError为14001,使用相对路径、绝对路径、LPCSTR、LPCWSTR加载dll均不能成功,而同样的方法在xp和本身就能用的win7系统下就可以使用。

看到网上有说关联的dll也要有,我使用depends查看,复制关联dll,将所有的红都变绿了,还是加载不上。

有大神遇到过这种情况吗?求指教!
------解决思路----------------------
sxstrace.exe
  相关解决方案