Posted By: Anonymous
I’m calling functions from a 32-bit unmanaged DLL on a 64-bit system. What I get is:
BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
At first, I had my projects set to the Any CPU platform, so I changed them both to x86, but this error is still occurring. That’s really the only fix I know for this.
The DLLs aren’t corrupt or anything, because I can use them with other programs (that I don’t have the source to). I thought that perhaps it wasn’t finding a dependency, but I checked and they’re all there. Plus, wouldn’t it throw a
DllNotFoundException in that case?
What else can I do? And before you say “Use a 64-bit unmanaged DLL instead,” let me point out that there isn’t one. 😉
Somehow, the Build checkbox in the Configuration Manager had been unchecked for my executable, so it was still running with the old Any CPU build. After I fixed that, Visual Studio complained that it couldn’t debug the assembly, but that was fixed with a restart.