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

2016-01-29 19:48 6 1 收藏

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

【 tulaoshi.com - ASP 】

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

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

  以上就是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;
}

(本文来源于图老师网站,更多请访问http://www.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;
}

来源:http://www.tulaoshi.com/n/20160129/1510138.html

延伸阅读
标签: ASP
一共4个页面:form.asp; chk.asp; num.asp; count.asp 得到一个随即数字。加密! 解密后成成XBM图片 利用session 判断 form.asp <% '### To encrypt/decrypt include this code in your page '### strMyEncryptedString = EncryptString(strString) '### strMyDecryptedString = DeCryptString(strMyEncryptedString) '### You a...
COM对象的生存周期与IUnknown接口 COM 对象的生存周期分为两部分来讲:客户端与 COM 本身: 在客户端,视定义的COM对象接口而定,像我们例子中的v_Obj,定义成全局变量,那么COM对象在创建时产生,只有在程序退出时才被释放。我们也可以在形式上将其释放,如:v_Obj:=nil,这样这个COM接口就无效了。在COM本身,COM接口的通过记数的方式...
《魔兽争霸3》浅析weg的战术变化 文章摘要:回首这次大赛,冷门和出乎意料的场面实在是太多太多,甚至许多都可以说是对传统的彻底颠覆,让我们来回顾一下本次大师赛中的战术变化   随着火热的夏天一起到来的WEG MASTERS大师赛经过了半个月的大乱斗,群雄逐鹿的局面终于宣告结束,最后的强者4K.TOD在过关斩将之后正式一统天下,登...
《巫师3 狂猎》炼金术原理及妙用方法分享 《巫师3:狂猎》中炼金术好不好?该如何使用?下面为大家详细介绍一下炼金术原理及妙用方法,一起来看看吧。 炼金术的妙用及原理: 炼金术是王道! 炼金术可以打造的有油、药剂、炸弹。 当你进入战斗时,配合油和药剂的使用会增加肢解的几率。 这个原理又涉及到巫师3的战斗系统,前面也有...
《质量效应3》结局浅析与解惑   个人支持接近beam被激光扫到之后都是indoctrination的过程, 证据如下:    1.除了SHEPARD 之外,没有人见过小男孩。第一次出现时ANDERSON完全无视小男孩让SHEPARD继续前进,注意听这时REAPER发出了哀嚎,在ME的小说的第三本里提到过,这种哀嚎是INDOCTRINATION中断的标志之一。而当小男孩上运兵...

经验教程

905

收藏

9
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部