无法加载DLL“找不到模块HRESULT:0x8007007E”

问题描述 投票:0回答:1

我有 C# WPF 应用程序,其中使用了 C++ DLL 库。当我构建项目时,它会成功构建,并且所有 DLL 和 exe 都存储在 bin/(Platform) eg(bin/Debug) 文件夹中。

现在,如果我复制调试文件夹并将其粘贴到系统中的任何位置并尝试运行 exe,它会成功运行,但如果我将调试文件夹复制到另一个系统并尝试运行 exe,它会显示错误“无法加载 DLL” (找不到模块 HRESULT:0x8007007E)”

如有任何建议或帮助,我们将不胜感激。

我尝试为 DLL 和 exe 设置相同的配置和平台。但仍然无法确定该 exe 在我的系统上完美运行,如果在另一个系统上尝试,它会显示“无法加载 DLL”错误。

c# c++ dll pinvoke marshalling
1个回答
1
投票

我在c#环境中使用非托管c++ dll库时遇到了同样的问题。

1.检查dll与32位或64位CPU的兼容性。

2.检查DLL .bin 文件夹、system32/sysWOW64 或给定路径的正确路径。

3.检查DLL的配置属性>C/C++>代码生成>运行时库,所有DLL的运行时库应该是相同的。

此问题可能因平台不兼容而出现。您可以从“构建”>“配置管理器”进行更改。

在我的情况下,我的一些 dll 的运行时库设置为 MDD,其他设置为 MTD,转换为相同的运行时库帮助了我。

© www.soinside.com 2019 - 2024. All rights reserved.