lundi 24 janvier 2022

Utilisations de plusieurs .dll à la fois.

 Pour ce qui est de l'utilisation d'une seul .dll à la fois le système fonctionne, cela a été écrit dans ce sens, mais pas encore vérifier.

La "CARTES_RELAIS.dll" appelle la "RS485_COMMUN_PCB.dll" cela fonctionne déjà en entreprise depuis 2012.

Pour faire le test avec une autre, "CARTES_RELAIS_2.dll", ici, il ne s'agit qu'une copie de la première .dll.
Le truc, c'est que "RS485_COMMUN_PCB.dll", utilise une ressource qui ne peut pas être dupliqué.
Donc vérifier que ce n'est appeler qu'une seule fois le même exécutable et non pas 2 fois, on aurait une des .dll qui fonctionnerait et pas l'autre.

J'ai donc modifié "test_dll_dynamique1" en le renommant en "exeDLL.exe".
J'y est ajouté la commande d'un autre .dll avec uniquement la commande pour l'affichage de sa fenêtre.
Plus une autre commande pour une seconde fonction pour la première .dll.

Le "test_dll_dynamique1.exe" original.
Le "test_dll_dynamique1.exe" modifié, maintenant qui s'appelle "exeDLL.exe".

Premier essai, donc commande des deux interfaces, puis demande de celle de l'interface finale, fonctionne pour la première, puis est refusé sur la seconde.
Ce fonctionnement est correct, on ne peut pas avoir plusieurs interfaces pour un même exécutable.


Nouvel essai, commande avec "exeDLL.exe" puis commandes avec "CARTES_RELAIS.dll" et "CARTES_RELAIS_2.dll", puis enfin la commande avec "RS485_COMMUN_PCB.dll".

Le tout fonctionne sans problème.

Aucun commentaire: