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

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

Ответ на: "Как я могу позвонить управляемому коду .NET из моего неу управляемого кода СЗ в Windows и наоборот?"

Количество ответов:2

Для вызова в управляемый код из неуправляемых C , использовать ClrCreateManagedInstance, or export your types in your managed assembly as COM visible, and use COM. To call into unmanaged code from managed, use COM or P/Invoke. , или экспортировать свои типы в управляемой сборке, как COM видимых, и использовать COM. Чтобы вызвать неуправляемый код из управляемого, используйте COM или P/Invoke.

основная линия Microsoft по этому вопросу является использование COM interop. Существует, однако, еще один вариант, иногда называют "Обратный P / Invoke" есть интересный блог here and some more и еще несколько here

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