System.BadImageFormatException, когда проект 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#? Проекты правильно ссылаются друг на друга и должны быть нацелены на одну и ту же архитектуру, но когда я дохожу до строки, создающей новый объект, он просто вылетает. [*]Имеет ли такая структура проекта смысл, или я стреляю себе в ногу, не делая что-то еще?
Я пишу игровую среду 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#? Проекты правильно ссылаются друг на друга и должны быть нацелены на одну и ту же архитектуру, но когда я дохожу до строки, создающей новый объект, он просто вылетает. [*]Имеет ли такая структура проекта смысл, или я стреляю себе в ногу, не делая что-то еще?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение