System.BadImageFormatException, когда проект C# создает управляемый объект C++?C#

Место общения программистов C#
Ответить
Гость
 System.BadImageFormatException, когда проект C# создает управляемый объект C++?

Сообщение Гость »


Я пишу игровую среду C++, которая будет использоваться в проектах C# для обеспечения цикла обновления и рендеринга окна. Подумайте о MonoGame, но намного проще.

Проблема

Мой проект настроен следующим образом:
[*]движок (собственный C++, встраивается в .lib) [*]управляемый движком (управляемый C++, ссылается на движок, упрощающий взаимодействие между C++ C#, встроен в .dll) [*]engine-sharp (оболочка C#, ссылается на управляемый механизм и создает оболочки C# для простоты использования, встраивается в .lib) [*]game (проект C#, который я использую для тестирования. ссылается на движок-оболочку и расширяет его класс Entity)
Эти проекты пусты, за исключением нескольких простых классов для проверки взаимодействия. прежде чем я продолжу.

Когда я пытаюсь создать новый управляемый C++ EngineWrapper (из Engine-managed) в моем проекте-оболочке C#, он просто выходит из строя и сообщает мне:

System.BadImageFormatException: не удалось загрузить файл или сборку, управляемую механизмом, версия = 0.0.0.0, культура = нейтральная, PublicKeyToken = null. Была предпринята попытка загрузить программу неверного формата. Имя файла: «управляемый двигателем, версия = 0.0.0.0, культура = нейтральная, PublicKeyToken = null» ---> System.BadImageFormatException: была предпринята попытка загрузить программу с неверным форматом. (0x8007000B) Что я пробовал?

У меня для проектов C++ установлено значение x64, а для проектов C# установлено значение Любой процессор.

Я настроил проекты так, чтобы игра ссылалась на движок, которая ссылается на движок, которая ссылается на движок.

Мои вопросы:
[*]Как исправить сбой проекта при попытке создать управляемый объект C++ в проекте C#? Проекты правильно ссылаются друг на друга и должны быть нацелены на одну и ту же архитектуру, но когда я дохожу до строки, создающей новый объект, он просто вылетает. [*]Имеет ли такая структура проекта смысл, или я стреляю себе в ногу, не делая что-то еще?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»