我正在使用C#编写一个.NET 3.5控制台应用程序,其中使用了一个VC++非托管DLL。几周前我曾经成功地在此项目上工作过,但今天回来后却出现了BadImageFormatException错误(“尝试加载格式不正确的程序。 (HRESULT异常: 0x8007000B))。
我的开发工作站运行64位Windows 7,并且我经常处理非托管代码,因此我立即检查了.NET程序集和VC++库是否都有x86目标。结果是有的。
为了确保,我清理并重新构建了VC++库和.NET程序集,但并没有解决问题。
两个系统都没有做任何特别的事情。VC++库加载二进制数据文件并对其内容进行一些数学处理。.NET程序集具有库的DllImports和一些代码来连接它。这些都在几周前都能正常工作。
所以现在我想知道是否有其他导致BadImageFormatException错误的原因,比x86 / x64冲突更少见。
谢谢。
编辑:无论是x86还是x64模式,我都会收到相同的错误,但当设置为“Any CPU”时,执行将超过该点,但执行会在稍后调用VC++库时中止,没有异常。无论是否与此问题相关,是否有任何“Any CPU”与x86和x64不同的东西可以阐明这一点?
我的开发工作站运行64位Windows 7,并且我经常处理非托管代码,因此我立即检查了.NET程序集和VC++库是否都有x86目标。结果是有的。
为了确保,我清理并重新构建了VC++库和.NET程序集,但并没有解决问题。
两个系统都没有做任何特别的事情。VC++库加载二进制数据文件并对其内容进行一些数学处理。.NET程序集具有库的DllImports和一些代码来连接它。这些都在几周前都能正常工作。
所以现在我想知道是否有其他导致BadImageFormatException错误的原因,比x86 / x64冲突更少见。
谢谢。
编辑:无论是x86还是x64模式,我都会收到相同的错误,但当设置为“Any CPU”时,执行将超过该点,但执行会在稍后调用VC++库时中止,没有异常。无论是否与此问题相关,是否有任何“Any CPU”与x86和x64不同的东西可以阐明这一点?