今天遇到了一个问题,在调用一个dll时,出现异常,
试图加载格式不正确的程序。 (Exception from HRESULT: 0x8007000B)
在网上搜了一下,是64位环境调用32位dll出现的问题。我的确是在调用一个不太清楚的dll,那个dll可能是32位的。
解决方法:
在项目属性中,Build标签中,将Platform target的选项从Any CPU改为x86,重新编译后,就可以正确执行了。当然,这个也损失了一些平台兼容性。
我的环境是Windows 7 64bit 中文旗舰版,Vs 2010 Preminum sp1(10.0.40219.1 SP1Rel),.net framework 4.0.30319 SP1Rel。
我的项目类型Windows Form,没有在web中遇到,Web项目可能需要在IIS管理器中设置(待验证):
IIS->应用程序池->高级设置->常规->启用32位应用程序,改为True。