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?

¿Fue útil?

Solución

Un par de opciones disponibles para usted aquí

  1. Utilice un modo de C ++ mixto montaje / CLI como un puente entre el C ++ y C # DLL
  2. 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top