COM组件第二部分(GUID,IDL,接口与IUnknown关系,以及COM对象和COM库)

一、UUID
通过特定的算法将主机和时间印鉴结合起来得到的数值;
组件对UUID的使用得到的叫做GUID;
如果我们用GUID唯一的表示组件的类,又叫做CLSID
如果我们用GUID唯一的表示组件的接口,又叫做IID
…(typedef)
GUID的产生方法:
1.GUIDGEN.exe
2.HRESULT CoCreateGuid (GUID * pguid

二、IDL
是组件的核心部分,用来描述组件接口的语言,定义COM接口。
作用:
剥离了编程语言和平台的限制,促进了建立二进制的组件模型。

COM IDL = = RPC IDL + 继承、多态等性质
IDL由微软的MIDL编译器进行编译
在这里插入图片描述

三、接口与IUnknown

import "unknwn.idl";  //作用类似include,表示引入IDL的文档
[
	object,//指定该接口是一个COM接口,不是RPC接口
	uuid(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx),   //UUID唯一的标识
]
//[]中内容的表示属性
interface Imath : IUnknown   //关键字interface白表示定义接口,接口继承自IUnkonw接口
{    //
	HRESULT Add([in] long op1,[in] long op2,[out,retval] long * pval);
}

MIDL将上面代码映射成C++即为:
#include"unknwn.h"
class Imath:public IUnknown
{
public:
	virtual  BOOL _stdcall Add(long op1,long 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值