iCAx开思工具箱

标题: CAA: COM接口 [打印本页]

作者: xyzhu    时间: 2007-3-16 22:35
标题: CAA: COM接口
我想用C++通过COM获得正在运行的CATIA:

       ::CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);

        HRESULT Result = NOERROR;  
        CLSID AppClsid;
        IUnknown *pAppUnk=NULL;
        Result = ::CLSIDFromProgID (L"CATIA.Application", &AppClsid);
          
        Result = ::GetActiveObject (AppClsid, NULL, &pAppUnk);
        if (FAILED (Result))
        {
                return ;
        }

        CATIAApplication* pAppl = NULL;
        pAppUnk->QueryInterface(IID_CATIAApplication, (void**)&pAppl);
        pAppUnk->Release(); pAppUnk = NULL;
        if(NULL == pAppl)
                return;

       CATIADocument* pDoc = NULL;
       pAppl->get_ActiveDocument(pDoc);

        CATIAPartDocument* pPartDoc = NULL;
        pDoc->QueryInterface(IID_CATIAPartDocument, (void**)&pPartDoc);
        if(NULL == pPartDoc)
        {
                return;
        }
       
        CATIAPart* pPart = NULL;
        pPartDoc->get_Part(pPart);

到这儿为止, 都没问题, 但是

        CATISpecObject* pSpecOnPart = NULL;
        pPart->QueryInterface(IID_CATISpecObject, (void**)&pSpecOnPart);

pSpecOnPart 是空指针. 我只能用Automation的API. 是不是程序错了?或漏了什么?
作者: horizan    时间: 2007-3-17 18:05
难道是因为你的程序没有加载CATIA的dll的原因?

不懂,帮顶!
作者: hick    时间: 2007-3-19 10:04
这样, 应该只能用automation API.
作者: kingqueenpan    时间: 2008-8-7 16:53
帮你顶!!
作者: cupcake    时间: 2008-8-11 13:24
请问在用vs2003怎么设置搜索头文件的路径,现在我的程序在这一行提示错误:  CATIADocument* pDoc = NULL;
错误如下:LoadCatiaDlg.cpp(13) : fatal error C1083: 无法打开包含文件:“CATIADocument.h”: No such file or directory




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3