站长首页  新闻资讯  网站运营  网站源码  站长学院  赚钱联盟  站长论坛  链接交换  素材中心  站长工具
设为主页
收藏本站
寻找帮助
 学院首页 | 网络编程 | 网页设计 | 图形图象 | 数 据 库 | 服务器技术 | 网络安全 | 网络媒体 | 搜索排名 | 网站运营 |
 当前位置:站长前线 >> 站长学院 >> 网络安全 >> 基础知识 >> 浅析COM的思想及原理(3)
∷ 相关文章 ∷
浅析COM的思想及原理(3)
浅析COM的思想及原理(2)
浅析COM的思想及原理(1)
C++入门解惑——浅析cout
∷ 热门文章 ∷
网吧生存手册:10秒钟还你..
密码攻防实战:驱动器隐藏..
木马入侵手段及防范措施
PhotoShop 学习方法论简单..
ASP.NET下MVC设计模式的实..
使用Win2003搭建视频服务器..
asp.net StreamReader 创建..
代理商之痛(转互联网大会..
Linux 服务器的安全隐患以..
用VB实现一个简单的ESMTP客..
 
浅析COM的思想及原理(3)
作者:未知   来源:CSDN   发布日期:2005-6-1   点击次数: 972
浅析COM的思想及原理(3)

  这样,组件和客户就完全被分隔开了,而连接它们的只有接口以及一个CreateInstance的函数。

  以上就是COM的基本原理了。当然,我前面也说了,COM其实是一套规范,它定义了很多标准,比如COM规定每个接口都必须继承于一个叫IUnknown的接口。我这里基本上没有提及它的这些标准,只是希望能通过对它进行一个简单的模拟来说清楚它的实现原理。下面就给出我模拟COM机制实现的一套COM的雏形,希望能对大家理解COM有帮助。

  1、实现了组件ComponentB的ComponentDll.dll:

//Interface.h
//接口
class InterfaceA
{
public:
  virtual void Fun1()=0;
  virtual void Fun2()=0;
};
//Component.h
//组件(实现了接口InterfaceA)
class ComponentB: public InterfaceA
{
public:
virtual void Fun1()
{
  printf("Fun1\n");
}
virtual void Fun2()
{
  printf("Fun2\n");
}
};
//ComponentDll.cpp
//CreateInstance函数
ComponentB instance;
extern "C" _declspec(dllexport) InterfaceA *CreateInstance()
{
InterfaceA *pIA=&instance;
return pIA;
}

  2、客户Client.exe:

//Client.cpp
#include "Interface.h"
#pragma comment(lib,"ComponentDll")
int main(int argc, char* argv[])
{
InterfaceA *pIA=0;
pIA=CreateInstance();
if(pIA!=0)
  pIA->Fun1();
return 0;
}


[告诉好友] [关闭窗口] [返回上一页] [打 印]

  • 上篇文章:玩转XP系统中的一些另类卸载
  • 下篇文章:浅析COM的思想及原理(2)
  • 关于本站 版权申明 广告服务 友情链接 寻找帮助 联系我们 人才招聘
    Copyright © 2002-2006 Zzadmin.Com. All Rights Reserved .
    Powered by:Zzadmin.com
    本站资源搜集于网络与本站无关如有侵权请来信指出!