1
4
杰伊 answer 如果您的项目是ActiveX(ActiveX exe、dll或OCX,而不是标准的exe),则该方法是否可行? 和 如果类是公共的。
但是,您提到您的朋友希望使用“内部类模块”来实现这一点。我不确定你是指私人
不能使用库来反映模块、私有类或声明为私有的任何其他内容。 作为一般的经验法则,在从另一个项目查看项目内容时,只能对在对象浏览器中可以看到的内容使用反射。也就是说,如果编译项目、创建新项目、添加第一个项目作为引用,然后在对象浏览器中查看第一个项目的内容,则可以通过 类型库信息对象库 . 如果对象浏览器中没有列出某些内容,则无法使用 类型库信息对象库 来反映它。 vb6没有任何内置的运行时反射或内省支持。使用 类型库信息对象库 因为ActiveX项目是在带有嵌入类型库的COM组件中编译的,所以反射对ActiveX VB6项目有效,但是正如前面提到的,您只能访问在已编译组件的类型库中公开的数据类型。使用对象浏览器可以快速确定类型库中的内容,因为只要从 分离 项目(如果从自己的vb6项目查看组件,它将显示公共和私有数据结构,即在IDE中可见的所有内容)。 |
2
2
这是你要找的东西吗? Visual Basic: Inspect COM Components Using the TypeLib Information Object Library 在这里我们将讨论这个话题,所以: Self Inspection of VB6 UDTs 我自己从来没有试过这种东西。 |