Почему мультиязычное решение не работает? - PullRequest
1 голос
/ 24 марта 2010

Мое решение имеет
Проект приложения C #
C # User Controls project
Математический проект C ++

Один из UserControls использует функцию из математики (проект C ++). Это UserControl используется в приложении.

Сборка и запуск приложения работает просто отлично. При наборе текста IntelliSense предлагает все содержащиеся в нем классы и методы. UserControl отображается правильно, но при нажатии кнопки, которая вызывает функцию C ++, я получаю BadImageFormatException (он появляется в конце автоматически созданной функции Main).

В справке предлагается использовать /fixed:no для связи, но это уже настроено.

Ответы [ 2 ]

1 голос
/ 24 марта 2010

Вы можете получить BadImageFormatException при запуске 32-битной DLL в 64-битной системе. Попробуйте установить цель "x86" во всех ваших проектах.

1 голос
/ 24 марта 2010

На основании информации, которую вы предоставляете, похоже, что управляемый код пытается вызвать библиотеку C ++ DLL, как если бы это был управляемый код (и он может быть построен как неуправляемый код). Информация о BadImageFormatException обсуждает это:

An attempt is made to load an unmanaged dynamic link library or executable (such as a Windows system DLL) as if it were a .NET Framework assembly.

Если вы создаете проект C ++ как неуправляемый код, вам может потребоваться использовать p / invoke для вызова его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...