DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: eyang11
今日帖子: 18
在线用户: 12
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 cccar (cccar) ★☆☆☆☆ -
盒子活跃会员
2004/4/30 7:55:57
标题:
请问对象创建的全过程(在线等谢谢了) 浏览:1017
加入我的收藏
楼主: 比如指向VMT的指针在什么地方,属性在什么地方,怎么知道类方法的地址
----------------------------------------------
-
作者:
男 sephil (NAILY Soft) ★☆☆☆☆ -
盒子中级会员
2004/4/30 8:17:16
1楼: 建议你看看“Delphi 的RTTI机制浅探”
此帖子包含附件:sephil_200443081825.doc 大小:67.0K
----------------------------------------------
Copyright 2008 ? NAILY Soft

Click here to redirect to my home
Click here to redirect to my blog
作者:
男 cccar (cccar) ★☆☆☆☆ -
盒子活跃会员
2004/4/30 8:43:15
2楼: 先谢谢你
----------------------------------------------
-
作者:
男 cccar (cccar) ★☆☆☆☆ -
盒子活跃会员
2004/4/30 10:58:42
3楼: 您好关于对象创建的问题我可不可以这样理解,就是
创建对象的时候如果是第一个创建的对象,那么就要创建VMT,而且在对象的内存中前四个字节为VMT的指针,接下来的是对象的所有的字段内容内容,对象的内存空间就存放这两项内容。
在程序的编译的时候就在程序内存空间中建立了类方法一般方法函数等内容,然后在建立VMT的时候有个指针可以指向他就可以了
是吗
----------------------------------------------
-
作者:
男 cccar (cccar) ★☆☆☆☆ -
盒子活跃会员
2004/4/30 11:31:20
4楼: 一个类(class),从编译器的角度来看就是一个指向 VMT 的指针(在后文用 VMTptr 表示)。在类的 VMTptr 的负地址方向存储了一些类信息的指针,这些指针的值和指针所指的内容在编译后就确定了。
这句话可不可以这样理解一个类的VMT在编译的时候就确定了,那么《INSIDE VCL》中为什么说在第一个类对象创建的时候才创建完整的VMT内容呢
不明白到底在编译的时候进行什么操作了,对象创建的时候又进行什么操作了
----------------------------------------------
-
作者:
男 sephil (NAILY Soft) ★☆☆☆☆ -
盒子中级会员
2004/4/30 12:34:48
5楼: 这个应该是和编译器相关的吧
我对这个素来没有研究(也没有兴趣)
抱歉帮不了你
不过好像BIOS很喜欢研究这个的说
问问他吧
----------------------------------------------
Copyright 2008 ? NAILY Soft

Click here to redirect to my home
Click here to redirect to my blog
作者:
男 sephil (NAILY Soft) ★☆☆☆☆ -
盒子中级会员
2004/4/30 12:46:19
6楼: 随便写了个例子试试
证明VMT确实是在编译以后就建立了的
即使没有类的实例生成
----------------------------------------------
Copyright 2008 ? NAILY Soft

Click here to redirect to my home
Click here to redirect to my blog
作者:
男 cccar (cccar) ★☆☆☆☆ -
盒子活跃会员
2004/5/1 12:33:40
7楼: delphi原子世界里面也是这样说的,其实我想知道类的一般方法的存放方式
我的汇编语言不是很好,不然我反汇编看看,没有办法这就是半路出家的坏处,如果在大学的时候学计算机就好了,就没有这么多的麻烦了
----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/5/1 14:43:53
8楼: 你把问题看的太简单了 就算你是大学学过汇编 也学不到这种程度的
汇编偶学过 光是 简单的 字符处理就足够让你死定在哪里了!

更不用说编译器的 汇编编写过程,建议器国外网站找编译器制作过程
看偶们中国人翻译的《编译原理》也只能呶呶洋洋!学不到什么东西
因为他涉及 文法 的编写 (相当复杂)和 假想机的概念!

类只是一个概念而已,在生成实例后才出现在内存中,至于他的描述在PE结构的什么地方,偶也不懂 ,因为 《面向对象》被编译成二进制机器码,就面目全非了!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行78.125毫秒 RSS