¿Cuáles son mis opciones para C ++ DLL para llamar a una DLL de C #?
Pregunta
Tengo una DLL de C ++ que tiene que llamar a una función (pasar un valor, devuelve un valor) en una biblioteca de clase C #.
Es mi única opción para dar la DLL de C # una interfaz COM y llamarlo desde C ++ con IDispatch?
¿Es este el mejor método?
Solución
Un par de opciones disponibles para usted aquí
- Utilice un modo de C ++ mixto montaje / CLI como un puente entre el C ++ y C # DLL
- Utilice el puente COM mediante la exposición de varios de los principales tipos de C # como objetos COM. Esto entonces se puede acceder a través del código C ++ por la semántica COM normales
Otros consejos
Este proyecto Crea exportaciones DLL para los métodos estáticos en clases. A continuación, puede llamar a un método estático de C # de código no administrado.
Un enfoque que funcione sería llamarlo aunque COM. Puede usar la herramienta Regasm para crear el contenedor COM.
No es la solamente opción.
También puede compilar el C ++ DLL como un DLL administrado.
Se podría alojar su C # DLL como un servicio y remota en ella.