Проблема с запуском консольного приложения C# с кодом C ++ в оболочке CLR - PullRequest
0 голосов
/ 19 февраля 2020

Я следовал этому руководству: Как создать оболочку CLR из C ++ для использования в C#
Мой проект собирается без проблем, и я использую тот же самый код, что и в учебнике.

Я пытаюсь запустить финальное C# Консольное приложение. (двойной щелчок по встроенному файлу c# .exe)
Вместо ожидаемого вывода на консоль « 4.1 » выдается ошибка:

Error upon running built .exe file

Кто-нибудь знает, почему он говорит?:
Необработанное исключение. System.BadImageFormatException: не удалось загрузить файл или сборку 'Clrcs, версия = 1.0.7354.20945, культура = нейтральная, PublicKeyToken = null'. Была предпринята попытка загрузить программу с неверным форматом. Имя файла: 'ClrCs, Версия = 1.0.7354.20945, Культура = нейтральная, PublicKeyToken = null' в Cs.Program.Main (String [] args)

Все 3 подпроекта в моем решении :
- установлены в цель . NET Core .
- были построены как Debug для x86 .
- есть необходимые ссылки.

Почему я пытаюсь добиться этого / есть ли лучшее решение для моей проблемы?:
Я хочу использовать мой SFML | OpenGL | C ++ «движок» для рисования трехмерных объектов с использованием данных из программного обеспечения, работающего на JavaScript.
. Я обнаружил, что это программное обеспечение может быть подключено к C# .dll в файле . js, поэтому я пытаюсь обернуть неуправляемый «движок» в C# как .dll .

Я уже знаю, что можно открыть окно рендеринга из DLL .
Я пробовал это в консольном приложении C ++, где я импортировал свой «движок» как .dl l.
Далее мне просто нужно импортировать оболочку CLR в приложение C# в виде .dll, что объясняется в упомянутом руководстве, но возникают проблемы с запуском файла .exe. И я не могу понять, почему.

Короче:
[SFML | OpenGL] C ++ as .dll > в> C ++ / CLR Wrapper as .dll > в> C# as .exe

Не могли бы вы помочь мне? В любом случае?

1 Ответ

0 голосов
/ 19 февраля 2020

Глупо задавать вам этот вопрос и не проверять, сохранен ли этот параметр.

Я нашел решение:
В свойствах проекта C# -> Build -> Platform target -> изменено с AnyCPU на x86.

C# project properties

...