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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <yodazNOSPAM@laposte.net> wrote in message
news:45646719$0$26247$426a74cc@news.free.fr...
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 ?
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.
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.
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
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