Я действительно нуждаюсь в более глубоком понимании того, как правильно настроить вещи, чтобы получить элегантное взаимодействие между моими базами кода C ++ и C #.Чего я хочу добиться, так это редактора в игре, написанного на C # для моего игрового движка (C ++ / DX).Для этого я позволил VS собрать свой движок как dll C ++ с некоторыми дополнительными функциями (неуправляемый код) для доступа к необходимой функциональности моего движка из базы кода редактора C #.Пока все хорошо.
Первое, что меня беспокоит, это то, что я собираю dll с поддержкой CLR.В противном случае C # не принимает DLL по какой-то причине.Он даже не позволяет мне добавить его к ресурсам («Невозможно добавить ссылку на« C: \ Users ... \ frame_work \ Test \ frame_workd.dll ». Пожалуйста, убедитесь, что файл доступен, ичто это допустимая сборка или COM-компонент. ").
И когда я собираю dll с поддержкой CLR и добавляю ее в ссылки в C #, перестраиваю без поддержки CLR, запускаю мой редактор и вызываю функцию из dll, тогда я получаю исключение HRESULT: 0x8007007E,Я искал его, но единственное, что я нашел, было связано с зависимостями, но это не соответствует предупреждению, которое я получаю при добавлении DLL к ресурсам.
Другой момент заключается в том, что мне всегда приходится переключатьсятип конфигурации между приложением (.exe) и dll.в VS C ++, в зависимости от того, хочу ли я запускать свой движок напрямую или из редактора, и каждый раз, когда полный проект создается полностью новым.
Итак, кто-то может объяснить мне, как организовать это правильно?И что может быть причиной того, что C # хочет, чтобы dll была скомпилирована с поддержкой CLR?
Спасибо, ребята / девочки.