LoadLibrary失败,何故?
sdcer 2006-04-24 11:38:55 在我的程序中,调用我写的MyDll.dll,代码如下:
hMoudle = LoadLibrary("MyDll.dll");
if (hMoudle == NULL)
DWORD dwErr = GetLastError();
发现hMoudle返回NULL(说明加载dll失败),但GetLastError()返回的是0(说明没有错误),这是什么原因?dll放在exe当前目录下,应该不是路径的问题。
后来,我又在MyDll.dll工程中,以调试的方式运行(在dll源程序中设置断点,以调试的方式运行,在dll工程中设置运行的exe),发现:程序根本没有进入MyDll.dll中的DllMain(), 也就是说,连dll的入口都没进入。
我想,我的dll工程中中设置了一些相对路径,在编译选项中以:"..\..Else"形式写入相对路径,也就是说这个dll用到了工程目录的上一层的上一层的else文件夹中的.h文件以及lib,我想是不是和这个有关?但我用depends工具查看,发现mydll.dll没有缺少其它的库文件,请各位指教。
此外,如果把所有的.h和.lib所在文件夹全放入工程目录下(不使用..\..else这种形式),就可以正常加载。但是这没有道理啊。