Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Propriétés d'un objet en VB

2 réponses
Avatar
Yodaz
Bonjour,
Existe t-il, en Visual Basic 6, un moyen de connaître le nombre d'attributs
d'un objet, le nom de ses méthodes, etc... pendant l'exécution du programme ?

Merci d'avance pour vos suggestions.

2 réponses

Avatar
Francois Picalausa
Hello,

Malheureusement non, cela est impossible... ou pas!

Pour ce qui est des objets présents dans l'executable, on peut forcer chaque
objet pour lesquels ont veut forcer l'introspection à implémenter une
interface définie "maison" et qui retournera ce dont on a besoin. Plus ou
moins joli, plus ou moins efficace, plus ou moins bien.

Il existe bien entendu des formats de fichiers qui décrivent la structure
des classe. Par exemple, pour COM, les typelibs s'en chargent.
Pour une dll COM (un composant ActiveX n'est qu'un type particulier de dll
COM), ces typelibs sont encapsulées dans les ressources de la dll (rendant
l'introspection suffisament simple).
Pour un executable, il est possible de créer ses propres typelibs, de les
référencer, d'implémenter les méthodes selon la typelib et à l'exécution
d'explorer la typelib. Celle-ci sera soit incluse dans les ressources (pour
un EXE COM, ce doit être réalisé automatiquement... quoi qu'il faut
vérifier), soit séparément.
Donc, le fait qu'une description entière de tes objets existe déjà est
possible!

Si tu opte pour les typelibs, la question suivant est "comment les
explorer?". J'éviterai de m'étendre sur le sujet, mais l'idée est d'utiliser
l'objet TypeLib Information Objects (de TlbInf32.dll) ce qui est décrit ici:
http://msdn.microsoft.com/msdnmag/issues/1200/TypeLib/default.aspx

D'autres formats existent certainement!

François

"Yodaz" wrote in message
news:45646719$0$26247$
Bonjour,
Existe t-il, en Visual Basic 6, un moyen de connaître le nombre
d'attributs d'un objet, le nom de ses méthodes, etc... pendant l'exécution
du programme ?

Merci d'avance pour vos suggestions.


Avatar
Yodaz
Francois Picalausa a écrit :
Hello,

Malheureusement non, cela est impossible... ou pas!

Pour ce qui est des objets présents dans l'executable, on peut forcer chaque
objet pour lesquels ont veut forcer l'introspection à implémenter une
interface définie "maison" et qui retournera ce dont on a besoin. Plus ou
moins joli, plus ou moins efficace, plus ou moins bien.

Il existe bien entendu des formats de fichiers qui décrivent la structure
des classe. Par exemple, pour COM, les typelibs s'en chargent.
Pour une dll COM (un composant ActiveX n'est qu'un type particulier de dll
COM), ces typelibs sont encapsulées dans les ressources de la dll (rendant
l'introspection suffisament simple).
Pour un executable, il est possible de créer ses propres typelibs, de les
référencer, d'implémenter les méthodes selon la typelib et à l'exécution
d'explorer la typelib. Celle-ci sera soit incluse dans les ressources (pour
un EXE COM, ce doit être réalisé automatiquement... quoi qu'il faut
vérifier), soit séparément.
Donc, le fait qu'une description entière de tes objets existe déjà est
possible!

Si tu opte pour les typelibs, la question suivant est "comment les
explorer?". J'éviterai de m'étendre sur le sujet, mais l'idée est d'utiliser
l'objet TypeLib Information Objects (de TlbInf32.dll) ce qui est décrit ici:
http://msdn.microsoft.com/msdnmag/issues/1200/TypeLib/default.aspx

D'autres formats existent certainement!

François




Merci pour votre réponse très complète.