Какие у меня есть варианты для C ++ DLL вызвать C # DLL?
Вопрос
У меня есть C ++ DLL, которой необходимо вызвать функцию (передать значение, вернуть значение) в библиотеке классов C #.
Является ли моим единственным вариантом предоставить C # DLL COM-интерфейс и вызвать его из C ++ с IDispatch?
Является ли это лучшим методом?
Решение
Несколько вариантов, доступных для вас здесь
- Используйте сборку C ++ / CLI в смешанном режиме в качестве моста между C ++ и C # DLL
- Используйте COM-мост, предоставив несколько ключевых типов C # в качестве COM-объектов.Затем к нему можно получить доступ через код C ++ с помощью обычной семантики COM
Другие советы
Этот проект Создает dll-экспорт для статических методов в классах.Затем вы могли бы вызвать статический метод C # из неуправляемого кода.
Один из подходов, который мог бы сработать, состоял бы в том, чтобы вызвать его через COM.Вы можете использовать инструмент Regasm ( Регазм ) чтобы создать COM-оболочку.
Это не тот Только вариант.
Вы также можете скомпилировать свою C ++ DLL как управляемую DLL.
Вы могли бы разместить свою C # DLL как сервис и удаленно подключиться к нему.