您的位置:首页 > 编程语言 > C#

C# Tips: 64位操作系统运行P/Invoke程序出现BadImageFormatException错误,错误代码:0x8007000B

2013-12-18 14:53 671 查看
在64位Windows 7上运行一个P/Invoke程序出现BadImageFormatException错误,错误代码是:0x8007000B

具体错误信息如下:

BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)


错误原因:

当一个64位的程序试图使用一个32位的DLL时,就会发生错误代码为0x8007000B的BadImageFormatException错误。

我们看一下DLL和P/Invoke程序的编译选项就知道了:



以上,CallDLL就是我们的P/Invoke程序,而SampleDLL就是我们要调用的DLL。

解决方法:

要么我们让这两个程序都以x86来编译:



要么我们让这两个程序都以x64来编译:



这样,就不再出现BadImageFormatException错误了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  .Net PInvoke x64
相关文章推荐