Я пытаюсь создать виджет C # для запуска вместе с архитектурой сервиса C ++. Я использую существующую службу интерфейса C ++, которая публикует / подписывает данные, и подключаю их к обратным вызовам визуализации C #.
Итак, у меня есть решение с проектом C # и проектом интерфейса данных C ++. Проект интерфейса C ++ компилируется с / clr, / MDd и / EHa, но это зависит от множества библиотек, которые скомпилированы с / EHsc и MTd. Линкер не любит, когда эти флаги не совпадают.
Если я изменю интерфейс данных на использование / MTd и / EHsc, как их зависимости, это говорит мне, что это несовместимо с / clr. Я предполагаю, что мне нужно получить интерфейс данных C ++ для компиляции с / clr, чтобы он мог общаться с визуализацией C #, верно? Но мне не принадлежат библиотеки зависимостей проекта C ++, поэтому я не могу изменить способ их компиляции.
Поэтому мой вопрос: можете ли вы заставить приложение C # взаимодействовать с C ++ DLL, когда эта DLL имеет зависимости, которые были скомпилированы с параметрами / MTd и EHsc?
Задача ещё не решена.