C ++ / CLI / C # BadImageFormat Исключение при загрузке формы - PullRequest
3 голосов
/ 29 января 2010

Я создал сборку C ++ / CLI, которая создает оболочку вокруг собственного кода C ++. Ресурс компилируется, и сборка прекрасно загружается в мой проект C #, когда я добавляю его в качестве ресурса. Я могу получить доступ к своим объектам и intellisense из моего приложения, но при попытке сборки происходит сбой за исключением:

BadImageFormat

Не удалось загрузить файл или сборку 'MyCLI, версия = 1.0.3680.28432, Культура = нейтральная, PublicKeyToken = null ' или одна из его зависимостей. Попытка был сделан, чтобы загрузить программу с неверный формат.

Я загружаю его в событие загрузки формы:

MyCLI.myCLI z;

... и когда я компилирую, он падает на этой строке в моем главном конструкторе в C #

Application.Run(new Form1());

Кто-нибудь имеет представление о том, что может быть причиной этого исключения?

Спасибо

1 Ответ

8 голосов
/ 29 января 2010

Вы пытаетесь запустить этот код в 64-битной операционной системе. Ваш код C # будет красиво скомпилирован в 64-битный машинный код. Но вы попытаетесь загрузить 32-битную сборку C ++ / CLI.

В проекте C # используйте Project + Properties, вкладка Application, Platform Target = x86. Создание 64-битной версии сборки C ++ / CLI также возможно, используйте Build + Configuration Manager. Использование Platform Target - лучшее решение.

...