我需要在 Visual C++ 中实例化 .dll 和本地机器上的 com 对象,我知道它可以通过使用 CoCreateInstance("clsid") 来完成,但我对声明感到困惑。所以任何人都可以解释所涉及的所有步骤吗?用于后期绑定和早期绑定
- 是否需要任何导入/包含
- 如何声明 com 对象?
- createinstance 之前需要的任何其他步骤(例如 CoInitialize?)
或提供任何涉及分步代码的具体参考
我需要在 Visual C++ 中实例化 .dll 和本地机器上的 com 对象,我知道它可以通过使用 CoCreateInstance("clsid") 来完成,但我对声明感到困惑。所以任何人都可以解释所涉及的所有步骤吗?用于后期绑定和早期绑定
或提供任何涉及分步代码的具体参考
首先,您必须调用并且如果初始化成功CoInitialize
,请不要忘记调用。CoUnitialize
因此,您的代码将具有以下结构:
HRESULT hr = CoInitialize(NULL);
if (SUCCEEDED(hr))
{
try
{
CoCreateInstance(...)
// ...
}
catch (_com_error &e)
{
//...
}
CoUninitialize();
}
有关详细信息,请访问MSDN。我建议您从COM 库开始,然后在使用CoInitialize和CoCreateInstance函数之前阅读它们。
本教程也可以帮助您:COM 简介 - 它是什么以及如何使用它。
#import
非常推荐。如果您使用#import 导入类型库,您将使用本机 COM 框架,该框架隔离了一些坚韧不拔的细节并使生活变得更轻松。
在 Native COM 中,类似这样的内容:
LibName::IMyInterfacePtr pInterface;
在原始 C++ 中:
IMyInterface *pInterface;
但见上。