Как мне вызвать управляемый код .NET из моего неуправляемого кода C++ в Windows и наоборот?

StackOverflow https://stackoverflow.com/questions/1046499

Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top