【发布时间】:2016-07-30 16:25:30
【问题描述】:
我有一个使用 VS2013 编译的 C++ dll。
我在我的 C# 应用程序中这样称呼它:
[DllImport("myDLL.dll", EntryPoint = "RestartIfNecessary", CallingConvention = CallingConvention.Cdecl)]
public static extern bool RestartIfNecessary(uint uiAppId);
而且效果很好。
但是,一旦应用程序处于生产状态,一些用户就会出现以下错误: 无法加载 DLL 'myDLL.dll':找不到指定的模块。 (HRESULT 异常:0x8007007E)
我无法找到为什么在某些计算机上会出现此错误。通过删除 Microsoft Visual C++ 2013 Redistributable (x86) 和 (x64) 并重新安装它们,我们已经能够为某些用户解决此问题。
我的 C# 应用程序已编译为在 x86 上运行。 我有一个64位的w10,它工作正常,所以我不知道它是否与windows有关。
你有什么提示可以帮助我解决这个问题吗?
编辑:这里是依赖walker的结果:
在dependendy walker中我发现了3个红色的dll,我不知道它们是否重要:
API.dll 是第三方 dll(myDLL 是此 API 的包装器)
【问题讨论】: