永发信息网

如何通过com接口得到实现该接口的对象实例

答案:1  悬赏:60  手机版
解决时间 2021-03-23 19:23
如何通过com接口得到实现该接口的对象实例
最佳答案
在以接口的方式调用成员函数的时候,比如 MyIntfA.ProcA,这时编译器不知道 MyIntfA 到底指向哪种类型(class)的对象,无法知道 MyIntfA 与 Self 之间的距离(实际上,在上面的例子中 Delphi 编译器知道 MyIntfA 与 Self 之间的距离,只是为了与 COM 的二进制格式兼容,使其它语言也能够使用接口指针调用接口成员函数,必须使用后期的 Self 指针修正),编译器直接把 MyIntfA 指向的地址设置为 Self。从上图可以看到,MyIntfA 指向 MyObject 对象空间中 $18 偏移地址。这时的 Self 指针当然是错误的,编译器不能直接调用 TMyObject.ProcA,而是调用 IIntfA 的“接口跳转表”中的 ProcA。“接口跳转表”中的 ProcA 的内容就是对 Self 指针进行修正(Self - $18),然后再调用 TMyObject.ProcA,这时就是正确调用对象的成员函数了。由于每个类实现接口的顺序不一定相同,因此对于相同的接口在不同的类中实现,就有不同的接口跳转表(当然,可能编辑器能够聪明地检查到一些类的“接口跳转表”偏移量相同,也可以共享使用)。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
什么样的老人适合住养老院
将长方体截去一个四棱锥,得到的几何体如图所
占地100平方办工商营业执照大概要多少钱?还有
速腾1.6自动高配二手车13年9月多少价位
市民之家网站和武汉市建工程招投标交易平台是
交通银行信用卡美金到那里可以取到人民币
吃嗅吡斯的明和醋酸泼尼松后肌肉抽筋怎么办
娃学跳舞辛苦的句子,不要炫耀娃的句子
重庆市公安局大渡口分局交巡警支队六大队怎么
— Why are you so happy, Henry?— My old f
如果宇宙是由佛说的心生成的,那他有没有意识
18+7x6=()O()=()怎么做
玩了这么久,有没有研究者知道fgo防御力怎么
赤峰自驾游去哪里好玩,五天去哪里旅游比较好
黑色打底裤 黄色的中筒靴 配什么样式什么颜色
推荐资讯
共享单车有哪些?
想买个充气城堡摆摊多大合适
公务员考试能不能在试卷上勾画
张骞出使西域的路线顺口溜
房屋两边有两个通道有什么风水讲究
有哪些歌是粉丝写给tfboys
景天植物晚上放氧效率是多少,听说较少,急!
保险公司有关增员名句,关于接纳自己,扬长避短
怡诺婚庆鲜花礼品店地址在什么地方,想过去办
谁能告诉我鸭头鸭翅肉中嫩毛怎样去除
幸运快餐在什么地方啊,我要过去处理事情
五两九钱女命什么意思?好还是不好
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?