ATL中关于返回对象的有关问题,有时候正确,有时候异常
ATL中关于返回对象的问题,有时候正确,有时候错误。
下面的p 为ATL中记录的一个变量
CComObject<CGeoCamera>* p;
获取接口代码
if(!p)
{
res = CComObject<CGeoCamera>::CreateInstance(&p);
//这里进行查询接口 正确
}
else
{
p->QueryInterface(__uuidof(IGeoCamera), (void**)pVal); //pVal需要返回的,这里出错。
}
上面的代码,从逻辑上有木有错?错在哪里呢,
我不想每次都进行CreateInstance
------解决方案--------------------
pVal是指针?少了地址符了吧?
p->QueryInterface(__uuidof(IGeoCamera), (void**)&pVal);
------解决方案--------------------
变量没有初始化吧。
CComObject<CGeoCamera>* p = NULL;
下面的p 为ATL中记录的一个变量
CComObject<CGeoCamera>* p;
获取接口代码
if(!p)
{
res = CComObject<CGeoCamera>::CreateInstance(&p);
//这里进行查询接口 正确
}
else
{
p->QueryInterface(__uuidof(IGeoCamera), (void**)pVal); //pVal需要返回的,这里出错。
}
上面的代码,从逻辑上有木有错?错在哪里呢,
我不想每次都进行CreateInstance
------解决方案--------------------
pVal是指针?少了地址符了吧?
p->QueryInterface(__uuidof(IGeoCamera), (void**)&pVal);
------解决方案--------------------
变量没有初始化吧。
CComObject<CGeoCamera>* p = NULL;