Как мне вызвать управляемый код .NET из моего неуправляемого кода C ++ в Windows и наоборот? - PullRequest
3 голосов
/ 26 июня 2009

У меня есть чистое приложение на C ++, разработанное с использованием VC 6.0. Я хотел бы, чтобы это приложение использовало библиотеку, разработанную на C #. Как мне вызвать методы в библиотеке C # из моего собственного исполняемого файла? Я не хочу преобразовывать свое неуправляемое нативное приложение C ++ в управляемый код. Точно так же, как я делаю обратное? Является ли PInvoke единственным вариантом? Буду признателен за любые ссылки или указатели на то же самое.

Ответы [ 2 ]

3 голосов
/ 26 июня 2009

Чтобы вызвать управляемый код из неуправляемого C ++, используйте ClrCreateManagedInstance или экспортируйте свои типы в управляемой сборке как видимые COM и используйте COM. Чтобы вызвать неуправляемый код из управляемого, используйте COM или P / Invoke.

1 голос
/ 26 июня 2009

Основная задача Microsoft - использовать COM-взаимодействие. Есть, однако, еще один вариант, иногда называемый «Reverse P / Invoke», есть интересное сообщение в блоге здесь и еще немного здесь

Кроме того, если у вас есть Delphi.NET (теперь уже не функционирующий), этот язык позволяет вам экспортировать статические методы, как если бы вы использовали любую функцию dll, тогда вы можете вызывать сборку Delphi.NET точно так же, как обычную нативную Dll.

...