2009-08-07 22 views

risposta

4

No, è necessario utilizzare C++ gestito

+2

Oppure un wrapper scritto in C++ gestito. –

+0

Esattamente. Quello che facciamo è creare un involucro sottile con esportazioni "C" extern standard in C++ gestito, quindi scrivere il codice reale in C#. – ConsultUtah

1

Senza usare COM, è necessario scrivere un C++/CLI involucro. Il tuo codice nativo che include il file di intestazione del tuo wrapper deve essere compilato con/clr (supporto Common Language Runtime).

Solo per curiosità, perché non utilizzare l'interoperabilità COM? Controlla gli strumenti regasm.exe e tlbexp.exe.

+0

Perché non ho familiarità con COM e farò tutto il possibile per evitare di impararlo :) –

+1

COM soffre anche del problema di inferno DLL brutto dovuto alla registrazione globale. È possibile fare COM senza registrazione ma la documentazione è confusa e ci sono errori http://stackoverflow.com/questions/617253/is-anyone-successfully-using-registration-free-com-with-net-components –

1

Hai bisogno di qualcosa per far funzionare il mondo gestito e il mondo non gestito. Se non si desidera utilizzare COM, è possibile creare classi wrapper in C++/CLI.

Ecco un articolo che può iniziare: .NET to C++ Bridge.

+0

Grazie per l'articolo. È utile –

Problemi correlati