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这种形式),就可以正常加载。但是这没有道理啊。
...全文
280 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdcer 2006-06-01
  • 打赏
  • 举报
回复
以上说的都不对,原因是这样的:
是其它路径下的.cpp文件的文件名必须比当前路径下的文件名大(即strcmp()>0),
呵呵,很奇怪的问题。
lyl_rabbit 2006-04-24
  • 打赏
  • 举报
回复
只把DLL文件放到当前目录下就可以了
Kudeet 2006-04-24
  • 打赏
  • 举报
回复
LoadLibrary写入绝对路径测试一下不就可以排除是不是路径问题了
贵子潘 2006-04-24
  • 打赏
  • 举报
回复
还有注意一下你的DLL和测试程序是不是是同一版本,如DEBUG
notepad--v3.4 windows Notepad--v3.4.0-plugin-Installer.exe 是win10下面的插件版安装包,会关联右键菜单等。 Notepad--v3.4.0-win10-portable.zip 是绿色免安装版本,解压即用,不会关联右键菜单注册表。 Ndd-quick-v3.3.0-win10-single-portable.zip 是单文件绿色免安装版,只包含皮肤和vc依赖库,不含插件、不含文件对比,主推轻量级、快速反应。适合只需要纯粹、轻快级,文本编辑器的用户。不定期发布。 MacOS 版本 Notepad--v3.4.0-mac_x64_12.3.dmg 是macos 12.x 及以后的版本。 Notepad--v3.4.0-mac_arm64_12.3.dmg 是macos 12.x 及以后 arm64 m1/m2芯片 的版本。第一次安装时,需要在设置偏好里面,放开苹果的安装限制,才能正常识别,请自行放开设置一下。 如果还是有问题,参考帖子:#I8JTJN:macOS Sonoma 14.1.1安装提示已损坏:macOS Sonoma 14.1.1安装提示已损坏 uos com.hmja.notepad_3.4.0.0_amd64.deb 是x64 cpu架构的uos系统对应的ndd版本。 其余系统版本后续会发布。 3.4 修改如下: 1 支持文件标签拖入拖出到新窗口的效果。 2 windows下修改快捷键放开。 3 按行号切分大文件。 4 大文件打开时,在文件夹查找所在目录,macos下可能会崩溃问题。 5 目录右键增加删除文件、文件夹功能。 6 补充深色主题下rust语法高亮; lisp 语法失效问题。 7 linux下信号打开文件,不拿锁,打开文件在消息队列中去做。

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧