C# 无法加载 DLL(找不到模块 HRESULT : 0x8007007E)

标签 c# c++ .net visual-studio-2012 dll

错误:无法加载 DLL 'x.dll':找不到指定的模块。 (HRESULT 异常:0x8007007E)

操作系统:Windows 7

我有两个站,Visual Studio 2012,使用.net 4.0;另一个没有安装VS 在 VS2012 的第一站上,我有一个 C# 解决方案,其中导入了一个 C++ 项目。 我正在使用:

    [DllImport("x.dll", CallingConvention = CallingConvention.Cdecl)]
    [return: MarshalAs(UnmanagedType.I4)]

在这个站上工作。

但是当我移动到另一个站(没有安装 VS)时,出现了那个错误。 如果我安装 VS,它就可以工作。

出现此问题的可能原因有哪些?关于我可能遗漏的内容或如何调试此问题的任何想法?

最佳答案

最可能的原因是未安装 Visual Studio 的计算机缺少非托管 DLL 所需的 C++ 运行时。从可下载的可再发行组件安装适当的 C++ 运行时。

请确保您的非托管 DLL 链接到发布运行时而不是调试运行时。后者不能重新分配。

您可以使用 Dependency Walker、Process Monitor 等工具调试非托管 DLL 依赖问题。

关于C# 无法加载 DLL(找不到模块 HRESULT : 0x8007007E),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21138212/

相关文章:

c# - 除了我自己的客户端代码之外,如何防止访问 URL?

c# - 将 DataTable 转换为通用列表

c# - 使用来自非泛型类的泛型

c++ - VS2012 静态代码分析器在取消分配内存 vector 时给出误报

.net - 您将如何使用 DVCS(在我的例子中是 mercurial)来开发不同版本的 .NET 框架?

c# - 我们不能为不同的类使用相同名称的扩展方法吗?

c# - 将内存流写入文件

c++ - 为什么变量和函数不能同名?

c++ - Visual Studio 2015 调用堆栈显示 <Unknown function>

c# - 读取 CSV 文件