Quali sono le opzioni per il C ++ DLL di chiamare una DLL C #?
Domanda
Ho una DLL C ++ che ha bisogno di chiamare una funzione (passare un valore, restituisce un valore) in una libreria di classe C #.
è la mia unica opzione per dare il C # DLL di un'interfaccia COM e chiamare da C ++ con IDispatch?
E 'questo il metodo migliore?
Soluzione
Coppia di opzioni disponibili per voi qui
- Utilizzare una modalità mista C ++ / CLI assieme come un ponte tra il C ++ e C # DLL
- Utilizza il ponte un COM esponendo alcuni dei tipi di chiave C # come oggetti COM. Questo può quindi accedere tramite il codice C ++ da normali semantica COM
Altri suggerimenti
Questo progetto crea esportazioni dll per i metodi statici in classi. Si potrebbe quindi chiamare un metodo statico C # da codice non gestito.
Un approccio che avrebbe funzionato sarebbe chiamarlo però COM. È possibile utilizzare lo strumento Regasm per creare la COM wrapper.
Non è la solo .
Si può anche compilare il DLL C ++ come una DLL gestita.
Si potrebbe ospitare il vostro C # DLL come un servizio e remota in esso.