大哥写的有关对Vcl构造器函数的研究,请大家来讨论。
下载地址,有些是我写的。嘿嘿。
http://www.reallysoft.com.cn/op.chm
请大家提提意见。
问题点数:50、回复次数:16Top
1 楼firetoucher(风焱)回复于 2003-08-01 23:50:34 得分 50
不错,提点意见
1 代码罗列太多,却没有解释,尤其是汇编部分,还有函数的输入输出参数没有介绍
2 没有指导读者对vmtTable进行分析
3 在创建的时候其实create调用的是NewInstance,而NewInstance实际上就是获得一个instancesize大小的内存块,然后调用InitInstance进行初始化,而IntiInstance还引用了虚表中的接口界面表interface,对于包含的接口进行循环的初始化,你这里却没有提
4 整个过程中用了对vmtParent的循环,从而实现了create从父类到子类的链式的初始化,你这里也没有提到Top
2 楼reallike(爱翔)(学得太多,得休息一下)回复于 2003-08-01 23:54:57 得分 0
嗬嗬,凤炎老大,我大哥是汇编高手,他的立足点就是,
最起码,汇编能看得懂。至少里面的汇编我看得懂。
其他的是很好的建议。谢谢。Top
3 楼firetoucher(风焱)回复于 2003-08-02 00:03:09 得分 0
我补充一点,抛砖引玉,希望大家讨论
1 delphi的参数调用方式支持两种寄存器和栈,对于两个(或以下)的参数使用寄存器(eax edx)传递,多余的通过push用栈传递
2 由于你所涉及到的函数都是对象或者类函数/过程,而且参数比较固定而且比较少,所以eax edx一般一个用来传递实例指针(即self),有必要时另外一个传递类指针,需要索引时用si来保存索引值,这样大家在看那部分汇编和调用时不会晕头转向了
Top
4 楼firetoucher(风焱)回复于 2003-08-02 00:03:52 得分 0
好了,睡觉去了....
ps 你大哥是谁阿Top
5 楼reallike(爱翔)(学得太多,得休息一下)回复于 2003-08-02 00:09:29 得分 0
没有看文章作者的名字啊。
如果接触破解界,一定知道dREAMtHEATER,他就是我大哥。
他已经感觉,使用WIN32SDK开发足够经验了,就学习C++研究一下DELPHI的机制。
SELF指针基本应该是在EAX寄存器传递的。Top
6 楼test123456789()回复于 2003-08-02 00:18:06 得分 0
1 代码罗列太多,却没有解释,尤其是汇编部分,还有函数的输入输出参数没有介绍
看程序流程,而不是让你看细节!
2 没有指导读者对vmtTable进行分析
我觉得我再介绍有点多余,下面的参考文献说得比我清楚,我的这篇文章给中级读者看的,我假设他们都知道什么是VMT
3 在创建的时候其实create调用的是NewInstance,而NewInstance实际上就是获得一个instancesize大小的内存块,然后调用InitInstance进行初始化,而IntiInstance还引用了虚表中的接口界面表interface,对于包含的接口进行循环的初始化,你这里却没有提
说了,你再仔细看,“还引用了虚表中的接口界面表interface,”这个是旁支末节,没有提
4 整个过程中用了对vmtParent的循环,从而实现了create从父类到子类的链式的初始化,你这里也没有提到
这个我可以加进去Top
7 楼reallike(爱翔)(学得太多,得休息一下)回复于 2003-08-02 00:26:50 得分 0
哈,大哥不要发脾气啊。还是老样子。人家风炎老大为初学者着想惯了……Top
8 楼test123456789()回复于 2003-08-02 00:32:21 得分 0
没发发脾气啊。在这里感谢风炎,谢谢你的提示Top
9 楼reallike(爱翔)(学得太多,得休息一下)回复于 2003-08-02 09:47:23 得分 0
>>还有函数的输入输出参数没有介绍
有关这一点。大哥你应该做到的,这个是我们开发的一个习惯。函数过程前面有一些介绍。Top
10 楼lw549(那个孩子他爹)回复于 2003-08-02 10:24:33 得分 0
看看去Top
11 楼FrameSniper(http://naoku.net/blogs/framesniper/)回复于 2003-08-02 12:32:39 得分 0
哈哈,这个小子,不是走了吗,也回来了~~~~~~~~~~~~~```` ^0^
怎么感觉你像黑社会的????Top
12 楼reallike(爱翔)(学得太多,得休息一下)回复于 2003-08-02 13:01:13 得分 0
……
我这是给大哥和我宣传。
你这个FS,我再临走的时候说好了的,
大哥写出来文章我转到csdn上来。叫大家指正。Top
13 楼xiaoyuer0851(红旗下的蛋)回复于 2003-08-02 13:13:24 得分 0
学习ing …………
厉害Top
14 楼reallike(爱翔)(学得太多,得休息一下)回复于 2003-08-03 16:57:35 得分 0
怎么没有人看Top
15 楼reallike(爱翔)(学得太多,得休息一下)回复于 2003-08-05 11:14:56 得分 0
结贴。Top
16 楼geyobing(大地精灵)回复于 2003-08-09 09:11:18 得分 0
经典Top




