【Windows】 LoadLibraryA(“F:\\svnroot\\mccv.dll“) 返回NULL, GetLastError() 返回 126

GetLastError() 返回 126,对应的错误是:

ERROR_MOD_NOT_FOUND (126)

"指定的模块找不到。"

不一定 意味着 .dll 文件本身不存在,而是表示 Windows 无法加载该 DLL 或其依赖项 。即使你确认 mccv.dll 路径存在,仍可能因以下原因导致 LoadLibraryA 失败并返回 126:


🔍 常见原因及排查方法

✅ 1. DLL 依赖的其他 DLL 缺失

这是最常见的原因!
mccv.dll 可能依赖于:

  • Visual C++ 运行库(如 MSVCR140.dll, VCRUNTIME140.dll, ucrtbase.dll 等)
  • 其他第三方 DLL(如 OpenCV、FFmpeg、自定义库等)

👉 解决方法:使用 Dependency Walker 或更现代的工具检查依赖

⚠️ 注意:旧版 Dependency Walker(depends.exe)在 Win10/Win11 上对现代 CRT(如 UCRT)支持不好,会误报缺失,建议用 Dependencies


✅ 2. 目标 DLL 架构与当前进程不匹配
  • 你的程序是 32 位(x86) ,但 mccv.dll64 位(x64),或反之。
  • LoadLibrary 在架构不匹配时会直接失败,返回 126。

👉 检查方法

  • 使用 dumpbin /headers mccv.dll(Visual Studio 开发者命令行中可用)
    • 查看 machine 字段:
      • x86 → 32 位
      • x64 → 64 位
  • 或用 Dependencies 工具,它会显示架构。

✅ 确保你的 EXE 和 DLL 同为 x86 或同为 x64


✅ 3. 缺少 Visual C++ Redistributable

如果你的 mccv.dll 是用 MSVC 编译的(比如 Visual Studio 2015--2022),它需要对应版本的 VC++ 运行库。

👉 解决方法

  • 安装对应版本的 Microsoft Visual C++ Redistributable

即使你本机有 VS,目标机器也可能没有安装运行库。


✅ 4. DLL 路径包含非 ANSI 字符或权限问题(较少见)
  • 虽然你的路径是 F:\svnroot\...,看起来没问题,但确保:
    • 当前用户对 mccv.dll读取和执行权限
    • 路径中没有隐藏的 Unicode 字符(比如从网页复制的路径)
  • 尝试将 DLL 复制到 C:\temp\mccv.dll,再加载,排除路径干扰。

✅ 5. DLL 入口点(DllMain)初始化失败
  • 如果 DllMain 中调用了某些 API(如创建线程、加载资源)失败,可能导致 DLL 加载被拒绝。
  • 但这种情况通常返回的是 127(ERROR_PROC_NOT_FOUND) 或其他错误,不过也有可能表现为 126。

🛠️ 快速诊断步骤

  1. 用 Dependencies 打开 mccv.dll

    → 查看是否有缺失依赖(红色图标)。

  2. 确认架构匹配

    → 你的 EXE 是 x86?DLL 是 x86?

  3. 在命令行用 where mccv.dll 确认路径无歧义(可选)

  4. 尝试将 DLL 放到系统目录(如 System32)测试?

    → 不推荐长期这么做,但可用于排除路径问题(注意:放 System32 需要管理员权限,且 32 位 DLL 应放 SysWOW64)

  5. 使用 Process Monitor(ProcMon)监控文件访问

    • 下载:Sysinternals ProcMon
    • 过滤 Process Name 为你的 exe,Path 包含 mccv.dll
    • 查看是否成功打开文件,以及后续是否尝试加载其他 DLL 并失败。

💡 临时验证:能否用 rundll32 加载?

cmd 复制代码
rundll32 "F:\svnroot\mediacontrol_sky_soft\40-saturn\common_cv\unit\prj_win32\mccv.dll",#

如果也失败,基本确认是 DLL 本身或依赖问题。


总结

LoadLibraryA 返回 NULL + GetLastError() = 126

几乎总是因为:依赖 DLL 缺失 或 架构不匹配

请优先使用 Dependencies 工具分析 mccv.dll 的依赖链!

相关推荐
jyOverQ10 小时前
ChatGPT Windows 客户端点击无反应、有进程却没窗口?一次 MSIX 非系统盘启动卡死的完整排查
windows·chatgpt
还是大剑师兰特13 小时前
MySQL8.0 Windows完整安装教程
windows·mysql·大剑师
redfred15 小时前
HandBrake 使用教程:开源视频压缩工具 视频太大压缩 MKV转MP4 批量转码 硬件加速 Windows/macOS/Linux
windows·开源·音视频
kakakahahahaha16 小时前
【Windows】C盘拒绝访问0x80070005的7步排查
windows·电脑·内容运营·软件需求
万年咸鱼18 小时前
Java ArrayList 详解:原理、用法与实战
java·开发语言·windows
奈斯先生Vector18 小时前
本地图片识别怎么接入多模态 AI?用 Python API 理解 GPT-4o Vision 的真实工作流
开发语言·人工智能·windows·python·网络协议·http·aigc
yyywxk19 小时前
ChatGPT/Codex Windows 桌面版“幽灵会话”问题:网页端已删除,桌面端仍显示且无法删除/归档
windows·chatgpt
万年咸鱼20 小时前
Java List 接口详解:从基础到实战
java·windows·list
Neighbor_OldY20 小时前
【实战复盘】RDP暴力破解与内网横向移动溯源:Windows全套排查命令与事件ID硬核解析
运维·windows·web安全
深念Y20 小时前
Windows 11 工具链部署与 SSH 踩坑笔记
windows·笔记·ssh