COM 引用计数始终为 2
COM Reference count is always 2
美好的一天。
我最近几天使用 COM,当我创建一个实例时,引用计数始终为 2。我阅读了一些关于这个主题的问题,并且常见的答案说明了一些关于线程的东西。所以我在创建任何线程之前将创建 COM 对象放在程序的开头,并且在创建后立即计数为 2。我不使用任何 QueryInterface。
hr = CoCreateInstance(CLSID_EventViewer, NULL, CLSCTX_LOCAL_SERVER,
IID_IEventViewer, (void**)&view);
int count = view->AddRef();
当您调用 CoCreateInstance
时,那个 returns 已经建立了引用计数的指针。 (您最终需要调用 Release
来释放它。)
当您调用 AddRef
时,您 增加了 引用计数(到 2)。为什么在创建对象后立即调用 AddRef
?
美好的一天。
我最近几天使用 COM,当我创建一个实例时,引用计数始终为 2。我阅读了一些关于这个主题的问题,并且常见的答案说明了一些关于线程的东西。所以我在创建任何线程之前将创建 COM 对象放在程序的开头,并且在创建后立即计数为 2。我不使用任何 QueryInterface。
hr = CoCreateInstance(CLSID_EventViewer, NULL, CLSCTX_LOCAL_SERVER,
IID_IEventViewer, (void**)&view);
int count = view->AddRef();
当您调用 CoCreateInstance
时,那个 returns 已经建立了引用计数的指针。 (您最终需要调用 Release
来释放它。)
当您调用 AddRef
时,您 增加了 引用计数(到 2)。为什么在创建对象后立即调用 AddRef
?