comment la DLL communique avec l’exécutable

la programmation


Salut,

Je n’ai pas trouvé la réponse sur les sites Web, si quelqu’un le sait, veuillez le préciser,

La DLL et l’exécutable s’exécutent sur la même machine et la DLL a envoyé un message à l’exécutable pour terminer le processus (ex : chargement des données/ressources à partir de la DLL).

Comment la DLL peut-elle intimer l’exécutable ?

Salutations,
Ranjith

Solution 3

Vous pouvez utiliser ce que Mike a décrit (rappel)… mais si c’est pour Windows… j’utiliserais les messages Windows. Pourquoi? …car une fois que vous avez compris la technique, il est facile d’ajouter/supprimer des messages sans changer l’interface DLL (cela dépend si vous vous souciez ou non de changer une interface DLL).

Voici un article sur les messages Windows avec MFC, mais si vous n’utilisez pas MFC, vous pouvez également le faire via WinAPI brut (et c’est également assez simple à faire) :

[^]

Solution 4

Peu importe que le code se trouve dans une DLL ou un EXE à l’intérieur des processus. L’important est que vous ayez deux processus qui doivent communiquer entre eux. Je suppose que la communication n’a pas besoin d’utiliser le passage de messages asynchrones (Passage de messagesc’est-à-dire : les deux processus sont en cours d’exécution lorsque la communication doit être effectuée.

Dans ce cas vous devez choisir et utiliser un mécanisme IPC : Communications interprocessus Windows

Les deux méthodes de communication les plus élémentaires à partir des mécanismes IPC Windows répertoriés sont les canaux et les sockets.
Mon préféré est les sockets car :
– Il est facile de porter sur n’importe quelle plate-forme
– Facile à exécuter les processus sur des machines distinctes et le code de communication est toujours le même
– Facile à utiliser entre des programmes écrits dans différentes langues
– La communication en bouclage (lorsque les deux points de terminaison sont sur la même machine) est optimisée sur toutes les principales plates-formes, donc l’utilisation de sockets localement est aussi efficace que l’utilisation de tuyaux

Solution 1

Utilisez un rappel.

Voir cet article pour des exemples : Rappels de type sécurisé en C++[^]

Solution 2

Salut,

Je pense que tu en as besoin mais je ne suis pas sûr

Comment charger une bibliothèque de liens dynamiques

Passe une bonne journée

コメント

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