Question
lien entre une dll et son CLSID
- michault
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 128
- Remerciements reçus 0
il y a 15 ans 7 mois #7929
par michault
lien entre une dll et son CLSID a été créé par michault
Bonjour,
je réapparais après plus d'un an de silence.
Voilà mon problème: J'aimerais à partir du fullName d'une Dll, récupérer son CLSID.
Quelqu'un a-t-il une idée?
Je travail depuis un an sur C# et j'ai souven des problèmes avec des DLL introuvables. Pour être plus clair: je génère un exe et quand je l'éxécute j'ai un message d'une clarté dans le journal d'évènement du style:
Merci
je réapparais après plus d'un an de silence.
Voilà mon problème: J'aimerais à partir du fullName d'une Dll, récupérer son CLSID.
Quelqu'un a-t-il une idée?
Je travail depuis un an sur C# et j'ai souven des problèmes avec des DLL introuvables. Pour être plus clair: je génère un exe et quand je l'éxécute j'ai un message d'une clarté dans le journal d'évènement du style:
Effectivement je ne trouve pas ce CLSID sous HKClasseRoot\CLSID. je voudrais donc mettre la main sur la Dll fautive.System.Runtime.InteropServices.COMException (0x80040154): La récupération de la fabrique de classe COM pour le composant avec le CLSID {86F9DB20-15D5-11D2-849C-0004AC94E175} a échoué en raison de l'erreur suivante : 80040154.
Merci
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 15 ans 7 mois #7932
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:lien entre une dll et son CLSID
chm69 écrit:

chm69 écrit:
chm69 écrit:
Il y a une sorte de contrat implicite avec ce type de DLL, si tu ne le respectes pas, elle non plus ne te respecte pas
Le respect c'est mutuel, c'est COM ça!
Je n'ai pas trop le temps de creuser, mais si tu recherches, non pas un fichier, mais un CLSID, qui nécessite un enregistrement dans la base de registre qui n'a pas eu lieu, ce n'est pas possible.
Puisque justement le CLSID (class ID), t'affranchis de son hébergement( la dll). C'est une sorte de pointeur (indirection).
Sinon à la place du CLSID tu aurais un nom de fichier .DLL, là pas d'ambiguité sur le nom de fichier, mais ainsi es-tu assuré qu'elle contienne la dernière version de l'objet ciblé ?
En théorie on peut trés bien avoir + fichiers DLL qui héberge le même CLSID (enfin j'ai doute sur ce point), je ne code pas des objets 'COM' tous les jours.
Va falloir que je relise ma doc
Le repos du guerrierje réapparais après plus d'un an de silence.
chm69 écrit:
Normal, si regsrv n'est pas exécuté sur la dll cible son CLSID ne peut être référencé.Effectivement je ne trouve pas ce CLSID sous HKClasseRoot\CLSID.
chm69 écrit:
L'est-elle vraiment ?je voudrais donc mettre la main sur la Dll fautive.
Il y a une sorte de contrat implicite avec ce type de DLL, si tu ne le respectes pas, elle non plus ne te respecte pas
Le respect c'est mutuel, c'est COM ça!
Je n'ai pas trop le temps de creuser, mais si tu recherches, non pas un fichier, mais un CLSID, qui nécessite un enregistrement dans la base de registre qui n'a pas eu lieu, ce n'est pas possible.
Puisque justement le CLSID (class ID), t'affranchis de son hébergement( la dll). C'est une sorte de pointeur (indirection).
Sinon à la place du CLSID tu aurais un nom de fichier .DLL, là pas d'ambiguité sur le nom de fichier, mais ainsi es-tu assuré qu'elle contienne la dernière version de l'objet ciblé ?
En théorie on peut trés bien avoir + fichiers DLL qui héberge le même CLSID (enfin j'ai doute sur ce point), je ne code pas des objets 'COM' tous les jours.
Va falloir que je relise ma doc
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 15 ans 7 mois #7937
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:lien entre une dll et son CLSID
Quelques infos :
[url=http://windows.developpez.com/faq/dcom/index.php?page=prog#registry_entries
]Quelles sont les entrées à rajouter dans la base de registres pour enregistrer un composant ?[/url]
[url=http://msdn.microsoft.com/en-us/library/ms678406(v=VS.85).aspx
]COM Class Objects and CLSIDs[/url]
\"Each COM class is identified by a CLSID, a unique 128-bit GUID, which the server must register. COM uses this CLSID, at the request of a client, to associate specific data with the DLL or EXE containing the code that implements the class, thus creating an instance of the object.\"
chm69 écrit:
]Delphi TypeLibReader[/url]
[url=http://windows.developpez.com/faq/dcom/index.php?page=prog#registry_entries
]Quelles sont les entrées à rajouter dans la base de registres pour enregistrer un composant ?[/url]
[url=http://msdn.microsoft.com/en-us/library/ms678406(v=VS.85).aspx
]COM Class Objects and CLSIDs[/url]
\"Each COM class is identified by a CLSID, a unique 128-bit GUID, which the server must register. COM uses this CLSID, at the request of a client, to associate specific data with the DLL or EXE containing the code that implements the class, thus creating an instance of the object.\"
chm69 écrit:
Je pense qu'il faut charger la TLB, et si tu veux te faire mal au cheveux ça se passe ici : [url=http://pchapuis.developpez.com/typelibreader/J'aimerais à partir du fullName d'une Dll, récupérer son CLSID.
]Delphi TypeLibReader[/url]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.039 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- lien entre une dll et son CLSID