0

我需要在 Visual C++ 中实例化 .dll 和本地机器上的 com 对象,我知道它可以通过使用 CoCreateInstance("clsid") 来完成,但我对声明感到困惑。所以任何人都可以解释所涉及的所有步骤吗?用于后期绑定和早期绑定

  1. 是否需要任何导入/包含
  2. 如何声明 com 对象?
  3. createinstance 之前需要的任何其他步骤(例如 CoInitialize?)

或提供任何涉及分步代码的具体参考

4

2 回答 2

0

首先,您必须调用并且如果初始化成功CoInitialize,请不要忘记调用。CoUnitialize

因此,您的代码将具有以下结构:

HRESULT hr = CoInitialize(NULL); 
if (SUCCEEDED(hr))
{
    try
    {
        CoCreateInstance(...)
        // ...
    }
    catch (_com_error &e)
    {
        //...
    }
    CoUninitialize();
}

有关详细信息,请访问MSDN。我建议您从COM 库开始,然后在使用CoInitializeCoCreateInstance函数之前阅读它们。

本教程也可以帮助您:COM 简介 - 它是什么以及如何使用它

于 2012-01-31T19:55:55.430 回答
0
  1. #import非常推荐。如果您使用#import 导入类型库,您将使用本机 COM 框架,该框架隔离了一些坚韧不拔的细节并使生活变得更轻松。

  2. 在 Native COM 中,类似这样的内容:

    LibName::IMyInterfacePtr pInterface;

在原始 C++ 中:

IMyInterface *pInterface;

但见上。

  1. 在程序开始时调用 CoInitialize(),最后调用 CoUninitialize()。如果在 DLL 中运行,则要复杂得多。
于 2012-01-31T19:56:33.290 回答