在第162页上:
程序的倒数第二行看不懂
HRESULT __stdcall CFactory::CreateInstance(IUnknown* pUnknown,const IID& iid,void** ppv)
{
if((pUnknownOuter!=NULL) && (iid!=IID_IUnknown))
{
return CLASS_E_NOAGGREGATION;
} CB* pB = new CB(pUnknownOuter); //pB的引用计数在构造函数置为1 if(pB == NULL)
{
return E_OUTOFMEMORY;
} HRESULT hr = pB->NondelegatingQueryInterface(iid,ppv);
pB->NondelegatingRelease(); //pB的引用计数减为0,导致pB被释放?
return hr;
}
程序的倒数第二行看不懂
HRESULT __stdcall CFactory::CreateInstance(IUnknown* pUnknown,const IID& iid,void** ppv)
{
if((pUnknownOuter!=NULL) && (iid!=IID_IUnknown))
{
return CLASS_E_NOAGGREGATION;
} CB* pB = new CB(pUnknownOuter); //pB的引用计数在构造函数置为1 if(pB == NULL)
{
return E_OUTOFMEMORY;
} HRESULT hr = pB->NondelegatingQueryInterface(iid,ppv);
pB->NondelegatingRelease(); //pB的引用计数减为0,导致pB被释放?
return hr;
}
解决方案 »
- VC 6.0下如何使用CXimage库? 求解!
- 用CMutex实现程序只运行一个实例的疑问。CreateMutex可以,CMutex不行
- 怎么重载一个已存在窗口的消息处理函数和成员函数
- 哪位高手有DOS与NOVELL通过IPX通信的源码?
- 关于opengl的一个问题~~!!!【初学者】
- 我是买宝马好呢 ?还是卖奥迪 A4 大家给点建议
- 请问如何在一个对话框里同时显示多幅图片?
- 请问PostMessage和SendMessage有什么区别?
- VC6下画图的问题:我所显示的图形在按键后改变。当我一直按着,使其快速不停地变化一段时间后,显示消失。大家是否遇到过这样的问题。
- CListBox既然有multicolumn,那为什么我找不到去设置column的方法?
- 我想写个启动应用程序的管理程序。不知道改拿什么写好,或者有什么好的软件?
- 请问从串口收到<html></html>的字符串可否用ie控件显示?
HRESULT hr = pB->NondelegatingQueryInterface(iid,ppv);
所以每次丢弃一个接口指针的时候都要release一次
reinterpret_cast<IUnknown*>(*ppv)->AddRef();