Retrouver les données publiques dans une bibliothèque

Soyez le premier à donner votre avis sur cette source.

Vue 4 111 fois - Téléchargée 868 fois

Description

Retrouver les fonctions, les procédures et différentes déclarations dans un fichier exécutable(DLL, OCX ou même EXE) nous permet de les utiliser et de connaître celles qui, jusqu'alors, nous sont inconnues. Tel est le but de ce bout de code.
Une ListBox nous affiche le CLSID du fichier, le CLSID de chaque classe contenue dans le fichier et les membres de chaque classe.
En plus, un fichier(appelé ici "Params.txt") est créé dans le dossier de l'application pour retrouver toutes les déclarations avec leurs types(de données).
Dans certains cas, le type n'étant pas connu, on met alors "As Unknown".
Lorsque les fonctions ne sont pas typées(ne se terminent pas par As 'Type'), elles seront traitées comme étant des procédures(Sub) et non ds fonctions(Function).
Les variables publiques sont répétées deux fois: une première fois précédée de "2" qui est la valeur de la constante "INVOKE_PROPERTYGET", une deuxième fois par "4" qui est la valeur de la constante "INVOKE_PROPERTYPUT". On n'en fera apparaître qu'une seule instance.
D'une façon générale, les paramètres des routines(Sub ou Function) sont passés par valeur(ByVal). C'est la technique adoptée ici.

Conclusion :


Reste à vérifier si certaines données sont des "Property" ou non ainsi que le type de certains d'entre elles et celui de certaines fonctions...

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
4 sept. 2009 à 10:13
Pas mal. Quelques remarques : il y a une référence à Office 12 inutile qui peut empêcher de compiler. Si on annule le choix d'un fichier cela plante. Si on pouvait faire un copié/collé du résultat ce serait bien.
VBsearch Messages postés 50 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 22 août 2009
4 sept. 2009 à 19:47
Effectivement, la référence à Office 12 est de trop et j'ai oublié de la désactiver ainsi que "Microsoft Visual Basic 6.0 Extensibility" et "Microsoft Add-In Designer" car au départ j'ai voulu faire de ce bout de code un complément puis je me suis ravisé. Merci pour la remarque.
Pour ce qui est plantage en annulant le choix d'un fichier, est-ce lorsqu'on exécute le programme dans l'IDE ou bien le programme compilé ? Moi ça ne m'est pas arrivé...
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
5 sept. 2009 à 08:05
cmdChoixFichier_Click : si sFile = "" alors ne pas appeler GetInfos(sFile)
ça ne plante qu'en mode compilé seulement.
VBsearch Messages postés 50 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 22 août 2009
5 sept. 2009 à 23:54
En compilé, le programme plante lorsqu'on essaie d'ouvrir un fichier sans informations de type ou parfois lorsqu'on annule une action. Voir la version corrigée que je vais poster maintenant.
A+
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
6 sept. 2009 à 13:04
Tu as oublié les 2 références inexistantes.
Pour le copié/collé, en fait c'est tout le fichier Params.txt qui est utile, je n'avais pas vu ce fichier avant, mais c'est super comme ça (copier une seule ligne dans le presse papier n'est pas très utile).

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.