iCAx开思网

标题: CAA基础求助 [打印本页]

作者: soyaceo    时间: 2011-8-31 14:04
标题: CAA基础求助
请问我这样来来获得CATIContainer 。但为什么总是说<<"error getting the spConODocs"<< 呢。以前这样做是可以的,现在怎么又不行了呢。

CATIContainer *DialogCommand::pSpecContainer(void)
{
CATFrmEditor* pEditor = CATFrmEditor::GetCurrentEditor();
  if(!pEditor)
      {
           cout <<"error getting the FRM editor"<< endl;
     return NULL;
      }
   CATDocument *pDoc = pEditor->GetDocument();
  if(!pDoc )
      {
           cout <<"error getting the CATDocument"<< endl;
    return  NULL;
   }
CATIContainerOfDocument_var  spConODocs = NULL_var;
HRESULT rc = pDoc->QueryInterface(IID_CATIContainerOfDocument,(void**)&spConODocs) ;
     if(!spConODocs)
      {
           cout <<"error getting the spConODocs"<< endl;
           return NULL;
      }
   CATIContainer* pSpecContainer = NULL;
   HRESULT hr = spConODocs->GetSpecContainer(pSpecContainer);
spConODocs->Release();
if(pSpecContainer == NULL_var)
      {
           cout <<"error getting the pSpecContainer"<< endl;
      }
  if(spConODocs == NULL_var)
       {
     cout <<"error getting the container of documents"<< endl;
       }
   return pSpecContainer;
}

作者: hong3058    时间: 2011-9-2 11:25
把CATIContainerOfDocument_var  spConODocs = NULL_var;
修改为CATIContainerOfDocument*  spConODocs = NULL;
你下面既然有对该指针Release就不需要使用智能指针。
作者: linlily0925    时间: 2011-9-13 14:49
spConODocs->Release();不需要,因为只能指针不需要释放~
if(pSpecContainer == NULL_var)改为if(pSpecContainer == NULL),因为pSpecContainer 你定义的是普通指针,不是智能指针~~
作者: 54qunan    时间: 2011-9-16 22:34
真好好好好好好好
作者: soyaceo    时间: 2012-3-24 15:31
谢谢大家。




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3