VC++原创编写COM实例的5种调用方法

五种写法总结得挺全,适合你刚接触 COM,或者想梳理调用方式的时候翻一翻。都是 VC++里比较常用的套路,从最基本的 CoCreateInstance 到用 ATL 帮你省代码的写法,再到 LoadLibrary 这种偏动态加载的技巧,讲得还挺实在。

CoCreateInstance 的用法算是最基础的,基本上你只要知道 CLSID 和 IID,直接 new 一个对象就完事了。像你要加载一个 ActiveX 控件,用这种方式最直接。

想图省事、代码还整洁的话,ATL 的 _ATL_BASE_MODULECComCoClass 这两招挺香的。它们封装得比较好,接口清晰,还能配合 CComPtr 自动管理对象生命周期,写起来舒服多。

再比如你要 COM DLL 的工厂导出,DllGetClassObjectLoadLibrary + GetProcAddress 就比较灵活。嗯,像插件式架构、需要动态控制组件加载的场景,这两种方式就比较实用。

建议你把压缩包里的 ComTest1.rarTestCom.rar 也解开看看,基本每种方式都有对应的例子,代码不复杂,照着跑一下就更清楚了。

如果你平时在搞 ActiveX、WebBrowser 控件,或者要和串口、图像打交道,也可以看看下面这些相关链接,思路会更宽一些。

rar
COM.rar 预估大小:2个文件
file
ComTest1.rar 15KB
file
TestCom.rar 13KB
rar 文件大小:27.59KB