I'm working on a .NET 3.5 console application in C# which uses a VC++ unmanaged DLL. It ran without a problem when I worked on it a few weeks ago, but I'm coming back to it today and am now getting a BadImageFormatException ("An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)).
My development workstation is running 64bit Windows 7, and I do a fair amount of work with unmanaged code, so I immediately checked that the .NET assembly and the VC++ library both had x86 targets. They did.
Just to be sure, I cleaned and rebuilt the VC++ library and the .NET assembly, to no avail.
Neither system is doing anything particularly unusual. The VC++ library loads a binary data file and does some mathematical processing on its contents. The .NET assembly has the DllImports for the library and some code to wire it up. This all worked a few weeks ago.
So now I'm left wondering if there's some other cause of BadImageFormatException that's less common than an x86/x64 conflict that I might be running into.
Thanks.
EDIT: I get the same error regardless of x86 or x64 mode, but when set to 'Any CPU', execution gets past that point, but execution aborts on a later call to the VC++ library with no exception. Regardless of whether that is related to this problem, is there something that 'Any CPU' does differently from both x86 and x64 which could shed some light on this?