Каковы мои варианты для C++ DLL для вызова C# DLL?

У меня есть C++ DLL, которая должна вызывать функцию (передать значение, вернуть значение) в библиотеке классов C#.

Является ли мой единственный вариант дать C# DLL интерфейс COM и вызвать его из C++ с помощью IDispatch?

Это лучший метод?

4 ответа

Решение

Несколько вариантов, доступных для вас здесь

  1. Используйте сборку C++/CLI в смешанном режиме в качестве моста между C++ и C# DLL
  2. Используйте мост COM, выставив несколько ключевых типов C# в качестве объектов COM. Затем к этому можно получить доступ через код C++ с помощью обычной семантики COM

Этот проект создает экспорт dll для статических методов в классах. Затем вы можете вызвать статический метод C# из неуправляемого кода.

Один из подходов, который сработал бы, - это называть его через COM. Вы можете использовать инструмент Regasm для создания оболочки COM.

Это не единственный вариант.

Вы также можете скомпилировать свою C++ DLL как управляемую DLL.

Вы можете разместить свою C# DLL в качестве службы и удаленно в нее.

Другие вопросы по тегам