Bonjour à tous,
J'ai écris une dll (Delphi6), qui permet de créer une connexion socket sur un serveur et d'envoyer et recevoir des messages. elle contient des fonctions qui permettent de gérer la connexion et la deconnexion et les échanges. tout ça fonctionne très bien.
j'ai fait un programme de test avec des boutons et un mémo pour tester la dll.
>>>par contre lorsque je ferme le programme, là j'ai un gros souci, la fenètre principale se décharge bien, mais par contre le programme continue de tourner en arrière plan. j'ai essayé tout ce que je pouvais pour fermer l'application proprement mais rien a faire, en particulier libérer le socket et les objets créés dans la DLL dans la clause finalization de la DLL. J'ai utilisé le code de RT15 pour charger la dll en statique ou en dynamique, sans succès. je n'ai utilisé que des pchar et des pointeurs sur des structures en paramètre des fonctions.
Il semble que des fenètres cachées ne soient pas déchargées ( 2 QWidget et 1 TApplication visible dans Winsight32). En débug, quand je ferme le programme, et que je break, dans la fenêtre CPU, ça boucle sur Ntdll.KiUserCallBackDispacher.
>>>Auriez vous une idée?
Merci d'avance.
Partager