日期:2014-05-17  浏览次数:20962 次

C# 64位系统调用32位DLL异常解决办法(异常来自HRESULT :0x8007007E)

解决办法如下

1、在IDE中将目标平台设置成x86(VS是在项目的属性->生成->目标平台)

2、如果DLL中调用了其他的DLL,需要将其他的DLL一同编译

3、有时DLL生成时会依赖于IDE,比如BCB下生成的DLL就会依赖于rtl60.bpl、vcl60.bpl、borlndmm.dll、cc3260mt.dl等几个DLL,必须要将这DLL放到一起编译

4、如果无法确定到底有哪些依赖项,可以使用DLL依赖项检查工具Dependency Walker(可以到此处下载http://www.onlinedown.net/softdown/38554_2.htm)。下载到工具后,将DLL放进去就可以看到DLL依赖项了。如下图所示