Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2070 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Vérifier enregistrement DLL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Vérifier enregistrement DLL

n°1991112
Deamon
Posté le 07-05-2010 à 09:12:19  profilanswer
 

Bonjour,
 
Dans mon programme en C++ (avec Qt) j'aurais besoin de savoir si une DLL est enregistrée dans Windows ou non (enregistrée avec regsvr32).  
J'ai essayé de chercher comment faire que ce soit avec du C++ de base ou bien avec les librairies Qt mais je n'ai rien trouvé à ce sujet.
 
Merci d'avance pour votre aide.

mood
Publicité
Posté le 07-05-2010 à 09:12:19  profilanswer
 

n°1991120
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-05-2010 à 09:35:08  profilanswer
 

Déjà, il te faut le GUID de la dll, car toute dll COM possède un GUID (les chiffres au format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
Pour rechercher ce GUID, si tu n'as pas la doc de la dll, alors tu dois faire une recherche dans la base de registres sur le chemin complet de ta dll. Le GUID y sera indiqué.
 
Une fois que tu as le GUID, appelle la fonction CoCreateInstance sur ce GUID. Si la fonction te renvoie S_OK, alors la création de l'objet COM s'est déroulée correctement, ceci signifiant donc que la dll est enregistrée.


---------------
J'ai un string dans l'array (Paris Hilton)
n°1991122
Deamon
Posté le 07-05-2010 à 09:38:17  profilanswer
 

J'ai le GUID. Je vais tester CoCreateInstance alors. Merci. :)

n°1991160
Deamon
Posté le 07-05-2010 à 10:28:07  profilanswer
 

Je n'arrive pas bien à l'utiliser. :(
Je n'ai besoin de renseigner que le CLSID non ?

 

J'ai fait ça :

Code :
  1. LPUNKNOWN pUnkOuter;
  2.     DWORD dwClsContext;
  3.     LPVOID *ppv = NULL;
  4.     static CLSID const clsid = { 0xe97ee6eb, 0x7fbe, 0x43b1, { 0xb6, 0xd8, 0xc4, 0xd8, 0x6c, 0x78, 0xc5, 0xa0 } };    
  5.     static CLSID const riid = {};
  6.     if( CoCreateInstance(clsid,pUnkOuter,dwClsContext,riid,ppv) == S_OK )
  7. ...
 

Mais ça ne me retourne pas S_OK alors que l'ID est bonne.

Message cité 1 fois
Message édité par Deamon le 07-05-2010 à 10:28:32
n°1991181
breizhbugs
Posté le 07-05-2010 à 11:08:35  profilanswer
 

Deamon a écrit :


Code :
  1. if( CoCreateInstance(clsid,pUnkOuter,dwClsContext,riid,ppv) == S_OK )
  2. ...




Bonjour,
Je ne saurais t'indiquer le bon code, mais il est interessant d'analyser la valeur de retour de cocreateinstance, et non de juste la comparer a S_OK car la tu ne sais pas pourquoi cela ne s'est pas bien passé!
http://msdn.microsoft.com/en-us/li [...] 85%29.aspx

n°1991331
Trap D
Posté le 07-05-2010 à 17:41:06  profilanswer
 

Il'y a pas des histoires d'installation de la dll avec un regsvr32 parfois ?

n°1991338
Deamon
Posté le 07-05-2010 à 19:35:39  profilanswer
 

breizhbugs a écrit :


 mais il est interessant d'analyser la valeur de retour de cocreateinstance


J'avais un nombre du genre -24217328, je n'ai pas retenu la valeur.

 
Trap D a écrit :

Il'y a pas des histoires d'installation de la dll avec un regsvr32 parfois ?


Oui c'est une dll enregistré avec regsvr32 mais justement je voulais savoir si l'utilisateur avait bien sa dll d'enregistrée.

Message cité 1 fois
Message édité par Deamon le 07-05-2010 à 19:35:47
n°1991407
breizhbugs
Posté le 08-05-2010 à 11:55:44  profilanswer
 

Deamon a écrit :


J'avais un nombre du genre -24217328, je n'ai pas retenu la valeur.
 


Et comparée aux constantes fournies dans la doc de cocreateinstance (voir lien plus haut), ca te donne quelle raison? (REGDB_E_CLASSNOTREG, CLASS_E_NOAGGREGATION, CO_S_NOTALLINTERFACES, E_NOINTERFACE ?)
 
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Vérifier enregistrement DLL

 

Sujets relatifs
Recherche d un enregistrement en utilisant Hibernate et StrutsUtilisation d'une DLL externe
Vérifier l'utilisation d'un CSS sur tout un siteVérifier les champs d'un formulaire avec Javacript
Ouverture et enregistrement d'un fichier xlsCreation d'une DLL java sous Windows 7 64-bit JKD 6
Suppression Fichers .mp3 liées à enregistrement sous accesscin : comment vérifier la cohérence de l'entrée
Vérifier si une expression est entre deux balisesCopie x fois enregistrement
Plus de sujets relatifs à : Vérifier enregistrement DLL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR