【问题标题】:VS C++ LoadLibrary always returns nullVS C++ LoadLibrary 总是返回 null
【发布时间】:2017-01-13 12:06:09
【问题描述】:

VS2015 mfc 项目。 尝试加载 QT5Widgets.dll

CString sPath("M:\\ParseDLL\\Qt5Widgets.dll");
HMODULE hm = LoadLibrary(sPath);

hm 始终为空。我尝试更改字符集(unicode,多咬),在路径文本之前使用_T,L,将win 32更改为64。仍然没有。 GetlastErorr 代码 126 告诉“找不到指定的模块”。 Dll 在这条路上。有什么想法吗?

【问题讨论】:

  • 您是否使用依赖项查看器检查了 DLL?也许那个 DLL 依赖于另一个无法加载的 DLL。
  • Dependency Viewer 还可以分析正在运行的应用程序并在发生LoadLibrary 调用时对其进行故障排除。
  • @void:您可能想阅读整个问题。

标签: c++ qt dll visual-studio-2015 loadlibrary


【解决方案1】:

Tt 看起来像是缺少 DLL。 如果M:\ParseDLL\Qt5Widgets.dll 确实存在,则意味着您缺少 Qt5Widgets 所需的 DLL 之一(或 Qt5Widgets 所需的 DLL 所需的 DLL 等)。

就像@Bathsheba 所说,使用依赖关系查看器工具可以帮助您找到有罪的 DLL。

快速清单

  • 您需要在同一文件夹(或您的 PATH)中至少有 Qt5Core.dll 和 Qt5Gui.dll 并确保
  • 为您的软件使用与用于构建 Qt 的编译器相同的编译器(版本和架构)
  • 如果您在调试中构建您的软件,您可能还想使用 Qt DLL(Qt5Widgetsd.dll 等)的调试版本。

【讨论】:

    猜你喜欢
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 2023-03-13
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多