Я работаю над консольным приложением .NET 3.5 в C #, которое использует неуправляемую DLL VC ++. Он работал без проблем, когда я работал над ним несколько недель назад, но я возвращаюсь к нему сегодня и теперь получаю BadImageFormatException («Была сделана попытка загрузить программу с неверным форматом. (Исключение из HRESULT: 0x8007000B)).
Моя рабочая станция для разработки работает под управлением 64-битной Windows 7, и я довольно много работаю с неуправляемым кодом, поэтому я сразу же проверил, что сборка .NET и библиотека VC ++ имеют цели x86. Они сделали.
Просто чтобы быть уверенным, я очистил и перестроил библиотеку VC ++ и сборку .NET, но безрезультатно.
Ни одна из систем не делает ничего особенно необычного. Библиотека VC ++ загружает двоичный файл данных и выполняет некоторую математическую обработку его содержимого. Сборка .NET имеет DllImports для библиотеки и некоторый код для ее подключения. Все это работало несколько недель назад.
Так что теперь мне интересно, есть ли какая-то другая причина исключения BadImageFormatException, которая встречается реже, чем конфликт x86 / x64, с которым я мог бы столкнуться.
Спасибо.
РЕДАКТИРОВАТЬ: я получаю одну и ту же ошибку независимо от режима x86 или x64, но при значении «Любой ЦП» выполнение достигает этой точки, но выполнение прерывается при последующем обращении к библиотеке VC ++ без исключения. Независимо от того, связано ли это с этой проблемой, есть ли что-то, что «Любой ЦП» делает иначе, как в x86, так и в x64, которое могло бы пролить свет на это?