Можно написать C # DLL (плагин) для приложения C ++? - PullRequest
2 голосов
/ 25 апреля 2011

Я хотел бы написать плагин (DLL) для приложения C ++, но я бы хотел использовать C #. Это возможно? У меня нет доступа к коду C ++, поэтому я не могу его изменить.

Из того, что я понял, приложение C ++ (хост) просто вызывает различные функции.

Вот пример функции плагина C ++:

void On_Start (HINSTANCE hInstance, HWND hWnd, BOOL bLogSet, int nDLLID, char * szHotKey)

Как бы это перевести на C # DLL, которая может быть загружена из этого приложения C ++?

Ответы [ 2 ]

5 голосов
/ 25 апреля 2011

Не напрямую, но вы можете написать в C ++ / CLI оболочку, которая экспортирует нативную функцию, а затем делегирует фактическую реализацию сборке C #.

Имейте в виду, однако, что это , вероятно, плохая идея - только одна версия CLR может работать в данном процессе, поэтому, если кто-то еще напишет управляемый плагин для приложения C ++, который нацеливается на другую версию CLR, чем ваш плагин, и это приведет к фатальным ошибкам во время выполнения.

0 голосов
/ 22 сентября 2011

Этот проект Создает экспорт dll для статических методов в классах. Это может быть более чистое решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...