Я работаю над созданием собственной очень маленькой игровой среды, которая позволит мне разрабатывать небольшие интерактивные приложения с использованием C#. Подумайте о MonoGame, но еще проще, поскольку я делаю это просто в учебных целях. Я надеюсь со временем создавать с его помощью небольшие двухмерные физические симуляции и другие небольшие интерактивные проекты. Я разработчик C# и пытаюсь узнать больше о C++, поэтому буду очень признателен за любую помощь.
Мой проект настроен следующим образом:
[*]движок (собственный C++, встраивается в .lib) [*]управляемый движком (управляемый C++, ссылается на движок, упрощающий взаимодействие между C++ C#, встроен в .dll) [*]engine-sharp (оболочка C#, ссылается на управляемый механизм и создает оболочки C# для простоты использования, встраивается в .lib) [*]game (проект C#, который я использую для тестирования. ссылается на движок-оболочку и расширяет его класс Entity)
Когда я пытаюсь создать новый управляемый EngineWrapper C++ (из управляемого движком) в моем проекте-оболочке C#, он просто выходит из строя и сообщает мне, что System.BadImageFormatException: An была предпринята попытка загрузить программу неправильного формата.
Что я пробовал
Я пытался настроить менеджер конфигурации так, чтобы все они были ориентированы на одну и ту же платформу, но это, похоже, совсем не помогло:

Я настроил проекты так, чтобы игра ссылалась на блэкджек-sharp, которая ссылается на блэкджек-управляемый, а какая ссылается на блэкджек.
Что бы вы могли предложить, чтобы это исправить?
Это та структура проекта, которую вы бы выбрали, или мне проще сделать то, что я пытаюсь сделать? Я надеюсь выполнить все события обновления физики/объектов на стороне C++, чтобы сделать это максимально производительным. Я на правильном пути?
Весь этот вопрос просто спрашивает о помощи в исправлении структуры проекта и о том, правильный ли это путь для того, что я пытаюсь сделать.