IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Thread non fermé après appel fonction dans DLL


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Thread non fermé après appel fonction dans DLL
    Bonjour,

    Si je compile sous l'éditeur après l'appel d'une fonction dans une DLL la compilation se poursuit avec une série de messages du type "Sortie du Thread : ID du Thread xxxx. Processus MonExe.exe(xxxxx)"

    Comment arrêter ce phénomène ?

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 747
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 747
    Points : 13 315
    Points
    13 315
    Par défaut
    Ce n'est pas une erreur. Le debugger notifie simplement les démarrages et arrêts des threads.
    Manifestement, la procédure dans la DLL en crée quelques uns

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 549
    Points : 25 119
    Points
    25 119
    Par défaut
    C'est le journal d'évènement (CTRL+ALT+V), si tu n'utilises pas OutputDebugString, tu peux le fermer

    D'ailleurs ce n'est pas la compilation qui émet ces messages mais l’exécution en debug de ton module
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Ok ShaiLeTroll
    J'ai décoché "outils du debogueur/Journal d'évennements/message de thread" et je n'ai plus la suite de messages.
    Est-ce suffisant ?
    Qu'ai-je à craindre ?

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 549
    Points : 25 119
    Points
    25 119
    Par défaut
    Je ne vois pas ce qui t'inquiète !
    C'est une traçabilité tout à fait normal

    Il faut juste que le nombre de Lancement et de Sortie soit le même !
    Si le nombre est différent et que cela bloque la fermeture du programme, là tu pourras t'y intéresser
    Et de toute façon, tu ne pourra agir que sur tes propres TThread, ceux interne à des DLL tiers dont tu n'es pas l'auteur, tu n'y pourras rien !

    D'ailleurs, une sortie de thread indique son arrêt, donc sa fermeture, ton titre de sujet "Thread non fermé après appel fonction dans DLL" est inapproprié !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 747
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 747
    Points : 13 315
    Points
    13 315
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Et de toute façon, tu ne pourra agir que sur tes propres TThread, ceux interne à des DLL tiers dont tu n'es pas l'auteur, tu n'y pourras rien !
    Il y a toujours la possibilité d'énumérer les threads du processus et de les tuer (TerminateThread), mais avec toutes les conséquences que cela implique (verrouillages non libérés, crash...).
    Par contre, si le thread contient une boucle de messages, un PostThreadMessage(ThreadId, WM_QUIT, 0, 0) assure un arrêt propre de la tâche (mais il pourrait toujours y avoir des dommages collatéraux).

    Je dis ça en passant, mais je rejoins Shai sur le fait que le message indique que la tâche est déjà terminée

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Ok et merci à tous
    Je coche résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. APPEL D'UNE FONCTION DANS DLL
    Par mulfycrowh dans le forum C++
    Réponses: 4
    Dernier message: 20/04/2010, 12h34
  2. appel de fonction dans dll native
    Par ZaaN dans le forum C++/CLI
    Réponses: 2
    Dernier message: 15/02/2008, 20h56
  3. appel pointeur sur fonction dans DLL
    Par dietrich dans le forum Windows
    Réponses: 6
    Dernier message: 24/10/2007, 21h48
  4. [C#] [MSDE] Connexion qui se ferme après appel de fonction
    Par trotters213 dans le forum Windows Forms
    Réponses: 11
    Dernier message: 23/03/2005, 16h30
  5. PB pour Appel fonction dans DLL sur Builder3
    Par Fbartolo dans le forum C++Builder
    Réponses: 15
    Dernier message: 10/03/2005, 12h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo