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

Ice*_*Ice 3 .net c# c++ dll visual-studio-2012

错误:无法加载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)]
Run Code Online (Sandbox Code Playgroud)

在这个站上工作.

但当我移动到另一个站(没有安装VS)时,它出现错误.如果我安装VS,它正在工作.

出现此问题的可能原因是什么?关于我可能缺少什么或如何调试此问题的任何想法?

Dav*_*nan 7

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

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

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