C#开发中提示无法加载DLL"***.dll":找不到指定的模块(异常来自HRESULT:0x8007007E)问题的解决办法

来源:互联网 发布:中世纪2优化9成神话了 编辑:程序博客网 时间:2024/05/17 21:51

还没来得及在C、C++的水面上多舀几瓢水,很快就又要转战C#了,因为暑假实习来到一个机器视觉应用技术公司,因为刚来什么也不会,所以先是了解公司的软件平台,硬件的话还好,没什么高深的,就是拿一些现成的产品来二次开发。这个公司的主要一方面是在客户端软件的开发,这就不得不接触到C#这门强大的开发语言了。由于C++的基础薄弱,所以对C#学习来说现在还是很迷茫,打算现在先从读示例代码开始吧,不会的再去百度查吧,边读边写,来不及也没得时间找本书慢慢去翻了,先上车后补票,不懂的地方不影响继续向下的话以后空了再去好好翻翻书。

作为C#软件开发分类栏目的第一篇博文,今天在运行别人给的demo的时候竟然提示说无法加载DLL,网上找了好久得到解决办法如下:

通常在以下情况下会出现这种异常:

(1)想要在64的系统上运行32位的应用程序并且没有WOW64(Windows-on-Windows 64-bit)子系统的存在。

(2)在编写运行在64位操作系统平台的应用程序时,调用DLL并且此DLL也是在64位操作平台下生成的,此时将有可能出现这类问题(我所遇到的情况)。

解决方法:

方法1:找到这个无法加载的DLL(自动生成或网上下载),然后将此DLL的副本放到C:\Windows\System32的目录下即可。

方法2:参考此链接中的解决方法。http://www.xmxwl.net/help/member/20150623/13521.html

注:关于WOW64模式

WOW64 (Windows-on-Windows 64-bit)是一个Windows操作系统的子系统, 它为现有的 32 位应用程序提供了 32 位的模拟环境,可以使大多数 32 位应用程序在无需修改的情况下运行在 Windows 64 位版本上。WOW64 是在用户模式下实现的,作为 ntdll.dll 和内核之间的层。WOW64 及其支持的一些 DLL 仅仅是可以加载到 32 位进程中的 64 位的 DLL。对于所有其他情况,进程保持为纯进程。32 位的进程无法加载 64 位的 DLL,反之亦然。

详细信息请参考:http://baike.baidu.com/subview/826224/826224.htm


阅读全文
0 0
原创粉丝点击