VS C++ LoadLibrary 总是 returns null

VS C++ LoadLibrary always returns null

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

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

hm 始终为空。我尝试更改字符集(unicode,multy bite),在路径文本前使用_T,L,将win 32更改为64。仍然没有。 GetlastErorr 代码 126 告诉 "The specified module could not be found"。 Dll 就在这个路径上。有什么想法吗?

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

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

快速清单

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