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

来源:互联网 发布:音乐播放软件知乎 编辑:程序博客网 时间:2024/06/05 21:12

在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错误了。


0 0
原创粉丝点击