问一菜鸟问题--什么是VTM?

wlovejj 2004-04-13 10:35:23
请问大家什么是VTM?有什么用?怎样用?
...全文
263 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ly_liuyang 2004-04-13
  • 打赏
  • 举报
回复
呵呵
其实知不知道都没所谓的,概念而已
aiirii 2004-04-13
  • 打赏
  • 举报
回复
http://www.china-pub.com/computers/common/info.asp?id=16831
參考這本書
mandyfan 2004-04-13
  • 打赏
  • 举报
回复
vtm?你是说vmt吧??Virtual Method Table,虚拟方法表。这是Framework组件用来组织类的方法时所使用的表格。它是系统编译出来的,运行时存在系统内。表里记录的是类方法的地址。每个类都有VMT,同类的不同实例都指向相同的VMT。另外VMT中也记录其他的一些内容,比如接口表等。它的用处很大,可以说没有它就不能实现Object Pascal和VCL Framework。但是对于普通的程序员还是不要使用的好,知道就可以了。一方面我们不需要直接使用,而且使用复杂,另一方面不同版本的编译器编译出来的VMT不一定相同,因此代码可能不好兼容。至于怎样用,这就比较复杂了,可以使用self指针取得VMT的入口,然后再根据虚方法的入口地址的相对位置找到虚方法的地址表的地址,然后取得虚方法的地址表,然后再取得方法指针,再根据指针去执行方法。。如果遇到dymatic声明的虚方法则还得找到父类的VMT。。。还是不要去用它的好,把自己都套进去了!!呵呵

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧