美好的一天。
我最近几天和COM一起工作,当我创建一个实例时,引用计数总是2.我读了一些关于这个主题的问题,并且经常回答一些关于线程的东西。所以我在创建任何线程之前将COM对象创建到程序的开头,并在创建后立即计数为2。我不使用任何 QueryInterface 。
hr = CoCreateInstance(CLSID_EventViewer, NULL, CLSCTX_LOCAL_SERVER,
IID_IEventViewer, (void**)&view);
int count = view->AddRef();
答案 0 :(得分:2)
当您调用CoCreateInstance
时,会返回一个已建立引用计数的指针。 (你最终需要致电Release
来解放它。)
当您致电AddRef
时,您增加引用次数(至2)。为什么在创建对象后立即调用AddRef
?