【问题标题】:Question about CoCreateInstance() method's implementation关于 CoCreateInstance() 方法实现的问题
【发布时间】:2011-03-30 01:25:22
【问题描述】:

我有一个关于 CoCreateInstnace() 方法如何定位和创建包含在 COM DLL 中的 CoClass 实例的问题。

根据MSDN

CoCreateInstance 函数提供 通过连接到一个方便的快捷方式 与关联的类对象 指定的 CLSID,创建一个 未初始化的实例,并释放 类对象。因此,它 封装了以下内容 功能:

CoGetClassObject(rclsid, dwClsContext, NULL, IID_IClassFactory, &pCF); 
hresult = pCF->CreateInstance(pUnkOuter, riid, ppvObj) 
pCF->Release(); 

所以我想知道这是否完全 CoCreateInstnace 是如何实现的?或者它只是一个逻辑等价物?如果它的实际实现不是这样,我完全不知道 CoCreateInstnace 是如何找到并创建一个仅在 Windows 注册表中注册的 CLSID 和一些 DLL 位置信息的正确 CoClass 的实例。

感谢您的回复。

【问题讨论】:

  • 它做得更多,但这需要一本书。 究竟你觉得哪一部分像黑魔法?

标签: c# c++ com


【解决方案1】:

请在 Visual Studio IDE 中使用调试版本的 MSVCRT 库进行调试来检查它。或者,您可以扫描 VC++ 包含头文件

【讨论】:

    猜你喜欢
    • 2018-04-12
    • 2012-11-24
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    相关资源
    最近更新 更多