【问题标题】:Use of CoGetClassObject() in C - access COM Object interfaceC语言中CoGetClassObject()的使用——访问COM对象接口
【发布时间】:2009-01-08 04:44:15
【问题描述】:

关于访问应用程序接口的说明,普通 C/C++

  • MFC
  • ATL
  • WTL

基本上,我想使用 COM 对象。

工作示例源代码或指南 - 使用(功能)COM 对象,创建 COM 服务器。

问候

【问题讨论】:

  • 我真的建议你看看 ATL。 (WTL 无济于事;MFC 臃肿) 3 个辅助类 CComPtr、CComBSTR、CComVariant 将使您的生活无限轻松,并且对于使用其他 COM 对象,您不需要更多。
  • 嗨,我会考虑 ATL - 为简单起见,但我宁愿/喜欢手动学习/处理所有控制。谢谢:)

标签: c++ c windows com


【解决方案1】:

这是一个简单的 C++ 示例:

CoInitialize(NULL); // absolutely essential: initialize the COM subsystem
IMyInterface* pIFace;
// create the object and obtain a pointer to the sought interface
CoCreateInstance(CLSID_MyObject, NULL, CLSCTX_ALL, IID_IMyInterface, &pIFace);
pIFace->MethodIReallyNeed(); // use the object
pIFace->Release(); // free the object
CoUninitialize(); // cleanup COM after you're done using its services

从这里复制:COM Basics

【讨论】:

    【解决方案2】:

    有一篇关于 CodeProject 的文章,Introduction to COM - What It Is and How to Use It,您可能会发现它很有用。它提供了一个很好的介绍和一个有效的例子。

    【讨论】:

      【解决方案3】:

      好吧,假设你有接口声明,你只需要调用 CoInitialize 来初始化 COM,然后调用 CoCreateInstance 来获取你的实例(并使用它),然后可选地调用 CoUnInitialize 来取消初始化 COM。

      【讨论】:

      • CasperOne,有小例子吗?我不熟悉 Windows 编程 - 我来自 Linux 世界...
      【解决方案4】:

      避免使用代码项目(新手),并查看所有关于 COM 的 MSDN 章节。

      一切都在那里,有大量的 C 和 C++ 示例代码

      【讨论】:

        【解决方案5】:

        只需参考一本关于 COM 的好书(Don Box 或 Dale Rougerson)。这些是 COM World 的良好起点。

        【讨论】:

          猜你喜欢
          • 2014-01-06
          • 2016-08-12
          • 2013-08-21
          • 1970-01-01
          • 2010-09-30
          • 2011-06-07
          • 1970-01-01
          • 2013-01-14
          • 1970-01-01
          相关资源
          最近更新 更多