iCAx开思网

标题: CAA调试问题 [打印本页]

作者: cupcake    时间: 2005-5-25 21:09
标题: CAA调试问题
各位高手:
      我在做Annotation的时候用了如下语句:
CATITPSFactoryAdvanced * piFactAdv = NULL;
     HRESULT rc = CATTPSInstantiateComponent (DfTPS_ItfTPSFactoryAdvanced,
                                    (void**) [$ piFactAdv)]
可是提示这句出错,错误如下:
## start step: link2nd   at 05/25/2005-21:15:43
# make: framework1\Implement.m intel_a\code\bin\Implement.dll
MyCmd1Cmd.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) long __cdecl CATTPSInstantiateComponent(enum CATTPSComponent,void * *)" (__imp_?CATTPSInstantiateComponent@@YAJW4CATTPSComponent@@PAPAX@Z)
F:\XieJiao\.\intel_a\code\bin\Implement.dll : fatal error LNK1120: 1 unresolved externals
# make-ERROR: intel_a\code\bin\Implement.dll
## end   step: link2nd   at 05/25/2005-21:15:44
我在identitycard.h里面加了CATTPSInterfaces 这个framework,在.cpp里面也包含了CATTPSInstantiateComponent.h,可是还是出了这样的错误,请指点。
:)
作者: cms_nuaa    时间: 2005-5-25 22:05
在module的.mk文件中也需要加入头文件所在的Module名。
作者: cupcake    时间: 2005-5-26 11:36
可是帮助里面是这么说的:
  
CATTPSInterfaces Global Function CATTPSInstantiateComponent
  
HRESULT CATTPSInstantiateComponent( CATTPSComponent  iComp,  
  void**  opiComp)   
  
Creates a TPS component from its identificator defined as a value of enum CATTPSComponent.  
Parameters:  
iComp  
The component identificator for which an instance is requested.  
oppv  
The address where the returned pointer to the interface is located.  
Returns:  
S_OK  
if the query succeeds  
E_UNEXPECTED  
for an unexpected failure  
E_NOINTERFACE  
if the interface does not exist  
  
--------------------------------------------------------------------------------
This object is included in the file: CATTPSInstantiateComponent.h
  
--------------------------------------------------------------------------------
  
Copyright ?2003, Dassault Syst鑝es. All rights reserved.
没有说应该加哪个module啊?就是把CATTPSInterfaces 加到.mk里面也还是出错。
作者: cupcake    时间: 2005-5-26 20:40
现在又有了一个问题:
CATITPS * piTPS = NULL;
       rc = piText -> QueryInterface (IID_CATITPS, (void**)[$piTPS)]
我包含了#include "CATITPS.h",可是还是有如下错误:
## start step: link2nd   at 05/26/2005-20:44:28
# make: framework1\Implement.m intel_a\code\bin\Implement.dll
MyCmd1Cmd.obj : error LNK2001: unresolved external symbol _IID_CATITPS
F:\XieJiao\.\intel_a\code\bin\Implement.dll : fatal error LNK1120: 1 unresolved externals
# make-ERROR: intel_a\code\bin\Implement.dll
## end   step: link2nd   at 05/26/2005-20:44:29
  
:)
作者: acoka    时间: 2005-5-27 00:05
你在makefile里加上
CATTPSItfCPP CATTPSUUID  
试试看
作者: cupcake    时间: 2005-5-27 10:11
第一个问题加上CATTPSItfCPP以后解决了,第二个还是不行。
:)
作者: cupcake    时间: 2005-5-27 10:45
奇怪了,我在makefile里加上 CATTPSItfCPP CATTPSUUID 后还是通不过,然后在identitycard.h里面加了CATTPSUIResources后,调试通过了,然后又把CATTPSUIResources删除了,调试还是可以通过。
另外,程序有一个warnning,是怎么回事啊?warnning如下:
  
## start step: link2nd   at 05/27/2005-11:09:19
# make: framework1\Implement.m intel_a\code\bin\Implement.dll
CATTPSUUID.lib(CATITPS.obj) : warning LNK4099: PDB "vc60.pdb" was not found with "D:\Catia\.\intel_a\code\lib\CATTPSUUID.lib" or at "F:\XieJiao\intel_a\code\bin\vc60.pdb"; linking object as if no debug info
## end   step: link2nd   at 05/27/2005-11:09:30
作者: liuruixiao205    时间: 2005-5-30 09:56
这个warning我也遇到过,对VC来说是这样的:PDB就是Program Database的意思,记录了程序的一些信息和调试有关的资料.在Project Settings里面可以设置是否使用PDB,默认情况下是选中的.如果选中的话,重新编译的时候会自动生成这个文件.如果出现这错,这时一般把debug全部删掉,rebuild。CAA里面怎么回事我也没管,反正是个warning,可我感觉在CAA里面好像影响比较大的。
作者: cupcake    时间: 2005-5-30 11:09
这个是个小问题吧,暂且先不管了。
:)




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