浅析COM的思想及原理(3)

书社尊者

书社尊者

2016-01-29 19:48

浅析COM的思想及原理(3),浅析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("Fun1n");
}
virtual void Fun2()
{
  printf("Fun2n");
}
};
//ComponentDll.cpp
//CreateInstance函数
ComponentB instance;
extern "C" _declspec(dllexport) InterfaceA *CreateInstance()
{
InterfaceA *pIA=&instance;
return pIA;
}

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/asp/)

  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;
}

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/asp/)
展开更多 50%)
分享

猜你喜欢

浅析COM的思想及原理(3)

ASP
浅析COM的思想及原理(3)

浅析COM的思想及原理(2)

ASP
浅析COM的思想及原理(2)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

浅析COM的思想及原理(1)

ASP
浅析COM的思想及原理(1)

《COM 原理与应用》学习笔记 - 第一部分 COM原理

编程语言 网络编程
《COM 原理与应用》学习笔记 - 第一部分 COM原理

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

《要塞3》浅析!

电脑网络
《要塞3》浅析!

拒绝服务攻击原理及解决方法(3)

电脑网络
拒绝服务攻击原理及解决方法(3)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Linux系统初学之学习方向和方法浅谈

Linux系统初学之学习方向和方法浅谈

VBScript教程 第九课

VBScript教程 第九课
下拉加载更多内容 ↓