Quelles sont mes options pour DLL C ++ pour appeler une DLL C #?
Question
J'ai un C ++ DLL qui doit appeler une fonction (passer une valeur, le retour d'une valeur) dans une bibliothèque C # classe.
est ma seule option pour donner le C # DLL une interface COM et l'appeler de C ++ avec IDispatch?
Est-ce la meilleure méthode?
La solution
Couple d'options disponibles pour vous ici
- Utilisez un mode mixte assemblage C ++ / CLI comme un pont entre le C ++ et C # DLL
- Utilisez le pont COM en exposant plusieurs des principaux types C # comme des objets COM. Cela peut ensuite être accessible via le code C ++ par la sémantique normale COM
Autres conseils
Ce projet Crée les exportations dll pour les méthodes statiques dans les classes. Vous pouvez ensuite appeler une méthode statique C # de code non managé.
Une approche qui fonctionnerait serait de l'appeler si COM. Vous pouvez utiliser l'outil Regasm pour créer la wrapper COM.
Ce n'est pas seule option .
Vous pouvez également compiler votre DLL C ++ en tant que DLL géré.
Vous pouvez héberger votre C # DLL en tant que service et à distance en elle.