今天遇到了一個問題,在調用一個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。