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

MFC Discussion :

GetCurrentThreadId et DLL : est-ce compatible ?


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    System Integration Project Manager
    Inscrit en
    Octobre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : System Integration Project Manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 219
    Par défaut GetCurrentThreadId et DLL : est-ce compatible ?
    Bonjour a tous,

    je viens a vous avec un pb qui ne me semble pas simple mais n'etant pas un expert des DLLs, j'espere me tromper ...

    Voici le pb : j'ai ecrit un systeme de plugin qui se base sur les DLLs (+ ou - comme présenté quelque part sur developpez.com)
    Ma DLL s'appuie sur une biblothèque-tiers compilée en /MT (runtime linké en static) ; la DLL est egalement compilée en /MT (je n'ai pas le choix on utilise cette option)
    Cette biblothèque-tiers définit une variable globale de classe C. Cette classe C fait appel, dans son contructeur a la fonction GetCurrentThreadId

    Des qu'une methode de mon plugin doit utiliser un composant de cette bibliothèque-tiers, l'appli crashe.

    Pour l'instant, j'ai 2 pistes :
    - un "static order initialization chaos" mais comme l'erreur est repetable ca me parait suspect...
    - un pb avec GetCurrentThreadId lié au fait qu'on travaille en /MT

    J'ai essayé de retarder le plus possible l'utilisation d'element de cette biblothèque-tiers de manière a ce que l'appli (de test pour le moment) existe
    mais ca ne change rien..

    Mes questions sont les suivantes:
    - est-ce que la DLL peut connaitre le ThreadId de l'appli appelante avec le mode /MT. (info: Je n'ai pas codée de fonction DllMain)
    - est-ce qu'utiliser GetCurrentThreadId est une bonne idée dans mon contexte ? Y aurait-il une alternative pour connaitre de manière sure le ThreadId de l'appli qui charge une DLL ?
    Je peux intervenir un peu sur cette lib mais le - possible

    Toute autre question pouvant me faire voir la verité est la bienvenue...

    Vincent

  2. #2
    Membre éclairé
    Profil pro
    System Integration Project Manager
    Inscrit en
    Octobre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : System Integration Project Manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 219
    Par défaut
    au cas ou quelqu'un se retrouverait un jour dans la meme situation :
    GetCurrentThreadId semble crashé lorsqu'on load une DLL avec LoadLibrary.
    Ca me parait logique car au chargement, la DLL n'a probablement pas de lien (si elle doit en avoir un) avec l'executable qui l'a chargée.

    donc il faut mieux eviter d'utiliser cette fonction dans l'init d'une DLL

    enfin, ce n'est que le retour de ma toute pitite experience avec les DLLs...

    V

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/09/2006, 16h44
  2. MSVCR71D.DLL est manquante
    Par Steph12 dans le forum Visual C++
    Réponses: 9
    Dernier message: 11/09/2006, 08h35
  3. Ce code est-il compatible ?
    Par pablo8 dans le forum Mon site
    Réponses: 18
    Dernier message: 23/06/2006, 16h39
  4. La fonction fgets est-elle compatible Windows/Unix ?
    Par ashurai dans le forum Langage
    Réponses: 1
    Dernier message: 05/04/2006, 17h59
  5. Noyau du deboggeur BORDBK41.dll est manquant ou non rescencé
    Par Colinbayard dans le forum C++Builder
    Réponses: 3
    Dernier message: 08/12/2004, 00h09

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