Как динамически загрузить управляемую (.Net) DLL в неуправляемый код? - PullRequest
2 голосов
/ 28 августа 2011

Как динамически загрузить управляемую (.Net) DLL в неуправляемый код?

Я создаю систему плагинов в C ++, которая внедряется в приложение, и я хотел бы иметь возможность писать плагины для C #.

Я немного искал, но мог найти только загрузку COM (с #import), но я не знаю, как это сделать во время выполнения, если это возможно.

C # DLL (плагин) может вызывать функции в C ++ DLL (плагин менеджер).

Я бы предпочел решение, не требующее компиляции C ++ DLL с помощью /clr.

.

1 Ответ

1 голос
/ 28 августа 2011

Здесь есть несколько проблем.

Я бы предпочел решение, которое не требует от меня компиляции DLL C ++ с /clr.

На некотором уровнеЧтобы использовать C # DLL, вам нужно загрузить CLR.Использование / clr имеет огромное преимущество - вы можете предоставить действительно управляемый API-интерфейс для работы с плагином C #.

Ваши основные другие варианты - использовать COM и предоставлять API на основе COM.Это будет хорошо работать с C #, а также с другими языками, и позаботится о загрузке CLR для вас.Единственный другой API - это самостоятельное размещение CLR с использованием API хостинга .Это дает вам максимальный контроль, но, безусловно, изрядное количество дополнительной работы.

...