cómo se comunica dll con el ejecutable

programación


Hola,

No pude encontrar la respuesta en los sitios web. Si alguien lo sabe, aclare.

DLL y ejecutable se están ejecutando en la misma máquina y dll ha enviado un mensaje al ejecutable respecto a que se completó el proceso (por ejemplo, carga de datos/recursos desde dll).

¿Cómo DLL puede intimar el ejecutable?

Saludos,
Ranjith

Solución 3

Puedes usar lo que Mike describió (devolución de llamada)… pero si esto es para Windows… usaría mensajes de Windows. ¿Por qué? …porque una vez que haya descubierto la técnica, es fácil agregar/eliminar mensajes sin cambiar la interfaz DLL (depende de si le interesa cambiar una interfaz DLL o no).

Aquí hay un artículo sobre mensajes de Windows con MFC, pero si no estás usando MFC, también puedes hacerlo a través de WinAPI sin formato (y también es bastante fácil hacerlo):

[^]

Solución 4

No importa si el código está en una DLL o en un EXE dentro de los procesos. Lo importante es que tienes dos procesos que tienen que comunicarse entre sí. Supongo que la comunicación no tiene que utilizar el paso de mensajes asíncrono (Paso de mensajeses decir: ambos procesos están en ejecución cuando se debe realizar la comunicación.

En este caso hay que elegir y utilizar un mecanismo IPC: Comunicaciones entre procesos de Windows

Los dos métodos de comunicación más básicos de los mecanismos IPC de Windows enumerados son tuberías y enchufes.
Mi favorito personal son los enchufes porque:
– Es fácil de portar a cualquier plataforma
– Fácil de ejecutar los procesos en máquinas separadas y el código de comunicación sigue siendo el mismo
– Fácil de usar entre programas escritos en diferentes idiomas.
– La comunicación loopback (cuando ambos puntos finales están en la misma máquina) está optimizada en todas las plataformas principales, por lo que usar sockets localmente es tan efectivo como usar tuberías.

Solución 1

Utilice una devolución de llamada.

Consulte este artículo para ver ejemplos: Devoluciones de llamada con seguridad de tipos en C++[^]

Solución 2

Hola,

Creo que lo necesitas pero no estoy seguro

Cómo cargar una biblioteca de enlaces dinámicos

Que tenga un buen día

コメント

タイトルとURLをコピーしました