2012-10-03 64 views
2

最近,我用C#语言编写了一个小型的winForm程序。在应用程序中,我使用C#来调用写在C++中的“* .dll”文件。它在我的Visual Studio 2012和我的电脑上都能正常工作,但是当我将它移动到其他电脑时,它总是弹出一个关于“无法加载DLL * .dll”的错误,找不到指定的模块(来自HRESULT的异常: 0x8007007E)。 “无法加载DLL XXX.dll,无法找到指定的模块(异常来自HRESULT:0x8007007E)

我已经在网上搜索解决方案。关于其他人遇到的问题,也有一些类似的问题,他们似乎还没有找到正确的解决方案。我也尝试了一些方法,如将我的'* .dll'文件移动到windows\system32或将应用程序当前目录写入System Enviroment Variable,但这也不起作用。

现在我真的不知道该如何处理它。所以我会非常感激,如果有人可以提供一些帮助。

我是新来的,非常感谢。

+1

你似乎错过了其他计算机上的依赖dll。使用诸如dependency walker之类的工具检查该机器中dll的依赖关系:http://www.dependencywalker.com/ – Naveen

+0

关于上面的依赖性建议,请看这个问题:http://stackoverflow.com/ q/10774250/31770 – sduplooy

+0

我使用dependencywalker来检查DLL的依赖关系,并找到两个DLL错过,然后我下载它们并将它们移动到Windows \ system32。我也注册他们,但我的应用程序仍然无法工作.. – Thisis109

回答

1

很老的文章,但首先在谷歌,所以我会后我的解决问题显示出来:我在写在C++,我整合在一个最小的C#控制台应用程序,并得到了你在上述同样的错误最小DLL 。最终的修复很简单:您的目标PC可能没有安装适当的VS可再发行组件包。在我的情况下(VS 2013),这是一个在这里:http://www.microsoft.com/en-us/download/details.aspx?id=40784由于某些原因,它无法手动从system32文件夹中复制所需的DLL ...多么怪胎的bug使我花了半天时间才发现。我没有在网上找到这个,现在会做一些交叉发布...

相关问题