如何在原始C中编写COM服务器?

时间:2010-06-10 10:48:17

标签: c com

我正在学习COM。我认为,彻底了解COM的最好方法是编写一个没有任何COM框架(如ATL)的方法。我用原始C ++写了一个COM服务器,现在我想用普通的原始C编写一个。我怎么能这样做?有没有教程?

非常感谢。

2 个答案:

答案 0 :(得分:4)

用C编写COM服务器并非不可能。只是COM代码已经很强大,它在C中会更加强大,因为你没有从兼容的C ++编译器生成的内置v表支持中获得帮助。或者像ATL这样的类库。你必须创建自己的。

用C编写的COM示例代码的一个很好的来源是WINE项目。例如,implementation of the IGlobalInterfaceTable interface。请注意该代码中的GITClassFactoryVtbl,它是类工厂的接口调度表,以及StdGlobalInterfaceTableImpl_Vtbl,即IGlobalInterfaceTable的调度表。

不太确定这会让您对COM编程有更深入的了解。你不可能写出像这样的真实服务器。您是否编写了进程外服务器?

答案 1 :(得分:2)

Don Box的书Essential COM是从头开始解释COM的所有内容之一。推荐使用。

然而,COM是十年前的技术,在C中需要做很多工作,而Don Box(之前被认为是专家之一)甚至不再触摸它。从中获取你的意愿。