com技术小结

    com:组件对象模型,客户端通过com api获得com对象,来调用com的方法。

    com对象:通过com api函数CoCreateInstance()产生com对象,这个函数需要指定两个128位的id,一个是dll/exe文件的id,一个是com的类id,在生成com的时候,系统注册表会记录这两个id,并把他们各自对应的dll/exe文件,类名记录下来,当调用这个api函数的时候,会在注册表中找到对应的dll/exe,类名,进行加载。如果不在同一台机子上,在客户端和服务器端会各自生成代理/桩子,来完成对用户透明的通信(远程这个地方,还没理解透,待续)。

     每产生一个类对象,基类提供一个对象的增加,删除操作,用来控制对象的引用,生成一个类对象就加1,删除一个类对象就减1,如果是0就服务器端就删除这个类对象。

     怎样编写一个com对象:

     通过接口定义语言IDL,在c++语法的基础增加了一些特有的语法比如[ ]...可以定义com特有的一些东西,例如代理/桩子如果接受,发送参数,如何创建对象等等。

      微软的接口定义语言编译器(MIDL)编译器用来编译这个IDL文件,会产生一些h文件,其中一个h文件定义了抽象类,以后的服务器对象就从这个抽象类进行派生,还有一个c文件,包含GUID用来标识这个dll/exe文件。客户端必须知道这个GUID才能调用DLL/EXE,可以用智能指针封装就行调用,客户端就不必麻烦的记住GUID这个东东。还有些代理/桩子文件,等等(还没明白,待续)。

      未完待续....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值