com接口的使用

​适用:本文只针对com接口的基本使用方法记录,即获取一个com接口库如何安装及用C++调用其中的接口。不包括com接口的编写。


获取:假设现得到一个com接口库pta.dll。

安装:在cmd命令行内运行:regsvr32 PTA.dll,得到图示表示安装成功。​​安装成功的意思是已经将pta.dll库的注册到注册表中,相当于该库的功能已经挂接到系统中,可供调用。

                                               

使用:

        com是语言无关的接口,可以使用常见的语言调用,现演示的是使用vc++(vs2005)来调用:

        (1)生成pta.dll的头文件。没有头文件,则无法使用接口函数等,无法编译通过。com接口遵循“IDL(接口描述语言)”,通过vs2005的集成imdl工具即可简单地将idl语言转换成“.c,.h”文件。在vs studo工具里面的“工具->外部工具“里面增加OleView.Exe工具。如图。

                                               

                  成功后可以通过"工具->OLE/COM对象查看器"打开该工具,如图可打开pta.dll接口查看它的idl语言。

                                              

                                              

                  将打开的idl语言另存为pta.idl文件,然后在自己的vs工程里引入此文件,对该文件进行单独编译,会生成相应的”.c .h“文件,具体文件名在属性里面可配置。在生成的过程中有可能会出错,这是因为工具不是太完美,生成的代码会有一两处错误,比如某个接口未定义,这里要手动改一下定义的顺序等等,这些都是灵活变通就可以解决的。

                  将成功生成的pta.h,pta.c文件加入自己的工程,此时可以从工程移除pta.idl文件。

                  新建一个main.cpp作测试,要include的文件为windows.h和刚生成的pta.h文件。

                  初始化com:              CoInitialize(NULL);

                  获取pta接口:         

                          从生成的pta.h,pta.c中代码分析便可以知道有哪些接口,并且它的clsid和每个接口的riid号(关于clsid和riid号:都是guid号,编写接口的时候就已经定义好,就理解为一级目录和二级目录,通过这两个编号能确定一个接口,对c++来说就是一个类)。              

                                                    IiTrusPTA * puk;//比如要用pta.h里面的这个接口

                                                    HRESULT hr = CoCreateInstance(CLSID_iTrusPTA,NULL,CLSCTX_INPROC_SERVER,IID_IiTrusPTA,(LPVOID *)&puk);    

                          获取成功后puk就是该接口,可以根据pta.h头文件定义的函数进行调用使用。

                释放:                        程序退出调用:CoUninitialize();                  




总结:     以上便是普通的com接口一般流程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值