Como posso chamar código gerenciado .NET do meu código gerenciado-un C ++ no Windows e vice-versa?

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

Pergunta

Eu tenho um aplicativo puro C ++ desenvolvido usando VC 6.0. Gostaria que este aplicativo para fazer uso de uma biblioteca desenvolvido em C #. Como faço para chamar os métodos na biblioteca C # da minha executável nativa? Eu não quero converter meu conseguiu-un aplicativo nativo para código gerenciado C ++. Da mesma forma, como eu faço o contrário? PInvoke é a única opção? Gostaria muito de receber quaisquer referências ou ponteiros para o mesmo.

Foi útil?

Solução

Para chamar código gerenciado a partir de C ++ não gerenciado, use ClrCreateManagedInstance ou exportar seus tipos em sua conseguiu montagem como COM visível, e a utilização COM. Para chamar código não gerenciado de gerenciado, o uso COM ou P / Invoke.

Outras dicas

principal linha da Microsoft sobre isso é o uso de interoperabilidade COM. Há, porém, uma outra opção, por vezes referido como "Reverse P / Invoke" há um post interessante aqui e alguns mais aqui

Além disso, se você tem Delphi.NET (agora extinto) essa linguagem permite exportar métodos estáticos como faria com qualquer função de dll, então você pode ligar para o Delphi.NET montagem como uma DLL nativa normal.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top