begin process at 2010 02 10 15:28:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Autre

 > 

Terminaison d'un thread dans une DLL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Terminaison d'un thread dans une DLL

vendredi 21 novembre 2008 à 20:04:41 | Terminaison d'un thread dans une DLL

Tibabou

Bonsoir,

OS : WinXP SP2
Compilateur : VS2008


J'ai créer une DLL dans laquelle une fonction crée un thread :

    void  __stdcall tibabou_launch(maClasse *objet)
    {
        DWORD threadID;
        CreateThread(NULL, 0, ThreadTibabou, objet, 0, &
threadID);
    }


    DWORD WINAPI ThreadTibabou(LPVOID lpParameter)
    {
        ((maClasse*)lpParameter)->launch();

        return 0;
    }


La méthode launch() de mon objet fait tout un tas de traitements dans une boucle : while (this->loopAgain) {...}
J'ai une autre méthode qui permet de stopper cette boucle (passage du booléen à false : crado mais fonctionnel).

J'appelle cette DLL depuis VB.

Le problème est le suivant :
La boucle accepte des connexions client (socket). Tant qu'aucun client ne se connecte, launch() et stop() fonctionnent parfaitement. Si un client se connecte puis se déconnecte... toujours pas de souci... je fais un appel à stop() et là ça crash sur la dernière accolade de ma méthode launch().

VB6 affiche le message d'erreur : L'exception Exception logicielle inconnue (0x....) s'est produite dans l'application à l'emplacement 0x....

Quant au débuggueur de VS2008, il m'informe de la pile des appels :

DLL2008.dll!__crt_debugger_hook()     Unknown
DLL2008.dll!__report_gsfailure()  Ligne 315 + 0x7 octets     C
DLL2008.dll!maClasse::launch()  Ligne 602 + 0x11 octets    C++  <--dernière accolade de la définition de la méthode
DLL2008.dll!ThreadServer(void * lpParameter=0x02fa29c8)  Ligne 15    C++

NB : lorsque j'utilise ma classe directement en C++ (SANS passer par ma DLL), ce scénario ne donne pas lieu à un incident.

Merci d'avance pour votre aide précieuse.

Tibabou
lundi 5 octobre 2009 à 20:59:42 | Re : Terminaison d'un thread dans une DLL

Booster

Membre Club
Salut,

Exactement le même problème à la différence prés que mon programme est en c++ (et non VB).

A tu trouvé une solution a ton problème ?

Merci d'avance.
mardi 6 octobre 2009 à 08:24:15 | Re : Terminaison d'un thread dans une DLL

fregolo52

Membre Club
Peux-tu détaillé ?
mardi 6 octobre 2009 à 18:58:39 | Re : Terminaison d'un thread dans une DLL

Booster

Membre Club
Problème résolu,

J'avais oublier de definir ma function de callback avec __stdcall

Bye ;)


Cette discussion est classée dans : objet, dll, thread, maclasse, launch


Répondre à ce message

Sujets en rapport avec ce message

Appeler un objet COM ActiveX/DLL en C++. [ par stof35 ] Quelqu'un aurait un bout de code pour réaliser cette action.Merci par avance 1 dll - 2 exe (3 possibilités ;o) ) [ par sena ] Bonjour,voila j'ai construit une dll.Au chargement de cette dll un thread est lancer pour pouvoir effectuer une réception UDP en permanence.Mon pb est Pointeur et objet ET collection d'objet [ par MrKribou ] En fait je savais pas trop quoi mettre comme titre pour pas copier :pBon je vous explique mon probleme (j'ai pas le source de ce probleme sous la main HOOKING [ par Fuckly94 ] Salut tout le monde,c'était juste pour savoir un truk tout béte!!je veux faire un HOOK sur le niveau SYSTEM!!il me faut donc une DLL <B detection d'un messageBox et fermeture automatique [ par elroulianito ] J'aimerai utiliser une fonction issue d'une dll. Le problème est qu'à l'execution de celle-ci une fenêtre de type messagebox apparait m'invitant à cli fonction recevant un pointeur de fonction d'une classe [ par fuliculi ] Bonjour à tous,j'ai un thread qui doit faire évoluer une variable "progress" de 0 à 100% (j'utilise les mutex pour éviter les écritures/lectures simul VC++ 6.0 exception 0xC0000005 (Access Violation) occurred in "c:\windows\system32\OLE32.DLL" at address 0x776045CD [ par sebastien_pelle ] Bonjour,Je travaille sur la migration d'une application tournant sous W2K vers WXP SP2. Je suis embeté pour le moment par un exe qui crash. L'exe en q Thread dans une dll [ par angel ] Est-il possible de créer un thread dans une dll ? Objet COM [ par mayouma ] Bonjour à tous;je suis entrain d'implementer des DLL en VC++.Net, je voudrais connaitre comment faire un appel d'une methode d'une DLL à une autre. j' Objet et DLL [ par alex1er ] Salut à tous.Je viens d'encapsuler dans un objet pas mal de fonctionalité directX et s'est volumineux.J'aimerais savoir comment integrer tout cela dan


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,529 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales