
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开发的时候
直接引入这个组件并使用
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)