| 网站首页 | 范文 | 演讲致词 | 汇报体会 | 总结报告 | 公文方案 | 领导讲话 | 党建工会 | 论文 | 文档 | 书信 | 
您现在的位置: 范文大全网 >> 论文 >> 计算机论文 >> 正文 用户登录 新用户注册
C++类的动态组件化技术           
C++类的动态组件化技术
”,在此模板类内实现

stdmethod(inheritfunc)()

{

m_pcppobj->inheritfunc();

return s_ok;

}

};

更改iinherititf接口的idl定义:

[

object,

uuid(8f3902df-da55-4802-ab8a-958aff45b2f4),

dual,

helpstring("ibaseitf interface"),

pointer_default(unique)

]

// 基接口从icppobjseeker派生

interface ibaseitf : icppobjseeker

{

[id(1), helpstring("ibaseitf method")] hresult basefunc();

};

[

object,

uuid(afebd472-4bec-45ce-a5a2-e37537c4744a),

dual,

helpstring("iinherititf interface"),

pointer_default(unique)

]

// iinherititf接口从ibaseitf接口派生

interface iinherititf : ibaseitf

{

[id(11), helpstring("iinherititf method")] hresult inheritfunc();

};

最后,更改atl派生类的模板基类:

class atl_no_vtable catlinherit :

……,

public catlinherititf<cinherititfimplement, iinherititf, &iid_iinherititf, &libid_cpp2atllib>

{

……

};

现在,通过iinherititf,我们可以使用ibaseitf的所有方法,实现了接口的继承。

4.2. 接口的多态性
在实现接口的继承后,要展现接口的多态性就很容易了,只需在atl派生类声明的接口映射表中添加基接口表项即可:

class atl_no_vtable catlinherit :

……,

public catlinherititf<cinherititfimplement, iinherititf, &iid_iinherititf, &libid_cpp2atllib>

{

……

begin_com_map(cinherititf)

com_interface_entry(iinherititf)

com_interface_entry(ibaseitf)

……

end_com_map()

……

};

就象c++中基类指针所展现的多态性一样,一个“ibaseitf *”型指针可以完全操纵iinherititf接口,而不需要知道真正的接口类型。

5. 总结
至此,我们的技术方案全部介绍完毕。c++基类ccpp2atlobjbase、atl模板基类ccpp2atltempbase和基接口icppobjseeker是方案中的关键技术。ccpp2atlobjbase配合ccpp2atltempbase,完善了组件对象生命周期的管理机制;通过基接口icppobjseeker,我们可以从任意接口反向查询c++对象;ccpp2atltempbase提供了c++对象和atl组件的自由绑定功能,封装了idispatch接口的实现,而进一步定义的atl模板基类继承体系则极大的方便了接口的自由继承。

在本文快结束的时候,我们不得不特别提到microsoft的“.net framework”。“.net”开发框架的推出,的确解决了com技术的许多困惑,也包括本技术方案所要解决的一些技术问题。然而“.net framework”是一个“改朝换代”的变化,要想一步将原来基于c++的系统(尤其是大型系统)完全移植到“.net”平台上是不可想象的,其工作量不亚于重新开发,所以microsoft特别推荐从com技术到“.net”平台的平滑移植。由此看来,本文提出的动态组件化的技术更显得可贵,它从工程化的角度,着眼于实际应用,解决了从面向对象的c++到基于组件的com技术的许多问题,既充分保护了原有系统的积累,又为这些系统搭上日益发展的“.net”快车提供了可能。


参考文献
《com原理与应用》,潘爱民 著,清华大学出

上一页  [1] [2] [3] 下一页

  • 上一个论文:

  • 下一个论文:


  • 看了《C++类的动态组件化技术》的网友还看了:
    [免费范文]LabWindows/CVI的应用特点
    [今日更新]网页制作DIV+CSS工作心得体会
    [今日更新]<<重阳之夜>>初中生作文
    [今日更新]农林牧渔|林业造纸
    [今日更新]C++运算符理解记忆顺口溜
    [法律论文]国内外黑社会(性质)犯罪比较分析---试答涉黑犯
    [企业管理]基于|模糊综合评价法|的并购重组|企业文化|风险
    [企业管理]从“四大”的价值观|看优秀财务工作者|应具备的素
    [企业管理]基于SPSS|的桐庐旅游市场|分析
    [今日更新]媒体语言“××门”的语法化探析

    计算机论文
    普通论文浅谈青少年网络道德教育
    普通论文网络信息安全状况与可信计算
    普通论文计算机网络系统在制碱工业中的应
    普通论文计算机网络交际语中的性别差异
    普通论文浅析计算机软件项目管理中的需求
    普通论文浅谈在计算机网络系统上进行大学
    普通论文关于软件项目管理中人员管理方法
    普通论文面向对象的建模方法
    普通论文企业数据备份与恢复技术研究
    普通论文基于WinDis 32技术实现网络通信监
    普通论文PHP网站设计中信息安全防御的研究
    普通论文VB中创建超长时间计时器对象
    论文
    普通论文[经济论文]对财政学中政府非税收入
    普通论文[工程建筑]刚柔复合式路面结构特点
    普通论文[今日更新]音乐教育论文常用的论证
    普通论文[免费范文]接待工作自查情况汇报
    普通论文[企业管理]公共部门人力资源管理激
    普通论文[免费范文]农业产业化和企业文化建
    普通论文[企业管理]高校人事档案管理工作探
    普通论文[今日更新]浅谈自拟方巧治慢性附睾
    范文大全
    普通范文[朗诵节目]公司国庆晚会三句半
    普通范文[零八零一]-XX市处置大规模集体上访
    普通范文[范文大全]当前高体有关弹跳力的几
    普通范文[范文大全]2010毕业生求职信范文
    普通范文[实习报告]党员基层素质培训计划
    普通范文[范文大全]基层银企对账工作调研对
    普通范文[范文大全]某小学2011 “庆六一,展
    普通范文[范文大全]法制办2011年度工作总结
    演讲致词
    普通演讲[庆典致辞]在公安系统大练兵队列会操
    普通演讲[庆典致辞]母亲节寄语
    普通演讲[会议发言稿]教师节幼儿园老师发言稿
    普通演讲[节日祝福语]2011兔年迎春对联精选
    普通演讲[爱国演讲]中学生弘扬爱国主义演讲稿
    普通演讲[会议发言稿]青年获奖者在单位总结表彰
    工作范文
    普通公文方案[公文写作]县域人才队伍建设存在的问
    普通公文方案[公文写作]村官讲法--记#市学习社区居
    普通公文方案[合同范本]租赁经营合同(3)
    普通公文方案[公文写作]让企业文化形神合一
    普通汇报体会[征文演讲]三八妇女节教师演讲稿
    普通总结[工作总结]工作总结(纪检监察)
    普通党建工会[政府政务]在区高致病禽流感防控工作
    普通汇报体会[心得体会]纪律教育学习心得体会
    普通总结[工作计划]安全生产监督管理局2010年
    普通公文方案[公文写作]安全生产年终总结
    普通公文方案[公文写作]管理探讨:中国经销商八大
    普通公文方案[公文写作]副主任科员竞聘书