如何编写 VC++代码来使用COM组件

如何编写 VC++代码来使用COM组件,第1张

为了帮助读者更快地体会到使用VC++编写COM client的效果,我建议您从上诉链接中下载最新的release,并按照如下步骤搭一个简单的测试环境:

Step1. 使用Visual Studio 2008打开CodeFx的solution文件(Visual Studio需要run as admin)。

Step2. Build其中的CppCOMClient和MFCCOMClient示例。由于项目依赖性的设置,这两个VC++ example所依赖于的COM组件(CSDllCOMServer, ATLDllCOMServer, ATLExeCOMServer)也会被编译并注册。

Step3. 直接运行CppCOMClient,并得到如下输出。CppCOMClient演示的是使用native C++来创建和使用进程内COM组件。这个COM组件既可以是用native代码写的,也可以是用.NET语言写的。

Step4. 直接运行MFCCOMClient,并得到如下输出。MFCCOMClient演示的是使用MFC的class wizard来创建并使用一个进程外的COM组件。

简单的测试到此结束。下面我们来看看编写一个VC++的程序来使用COM组件的一般方法:方法一:直接使用COM API,例如,CoCreateInstance以及IDispatch接口中定义的方法GetIDsOfNames,Invoke来创建和使用COM组件。当然,前提是那个COM组件支持IDispatch。CodeFx/CppCOMClient/RawAPI.cpp是该方法所对应的例子。

方法二:使用VC++的#import directive,导入目标COM组件的type library并自动生成一套包装好的强类型的类和智能指针。这极大程度地方便了开发人员,因为生成的类和智能指针将复杂的COM API,类型转换等内容都隐藏了起来,同时开发者还可以受益于Visual Studio的intellisense。CodeFx/CppCOMClient/ImportDirective.cpp是该方法所对应的例子。另外,值得注意的是,这个例子演示了使用一个.NET 写的COM组件(CSDllCOMServer)。对于.NET写的COM组件,我们额外需要#import mscorlib.tlb。

方法三:如果您开发的程序支持MFC,那您将更大程度地得益于MFC强大的class wizard。这个class wizard将方法二中的#import directive都封装隐藏了。您只需轻点几下鼠标,便可以无缝透明地创建和使用COM组件,就好像他是一个普通的class一般。

明白你的意思

举个例子吧

串口控件COM

1----先写好ARM的linux驱动程序

2-----然後把驱动程序打包成类

3----继而改成QT的组件

4---然後以後就可以在QT开发的时候

直接引入这个组件并使用


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/8102891.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存