iCAx开思网

标题: CAA变量类型转换 [打印本页]

作者: liuruixiao205    时间: 2005-4-24 13:16
标题: CAA变量类型转换
我用下面的句子得到一个点:  
CATIGSMPointCoord_var spPoint=_pFact->CreatePoint(x1,y1,z1);
想把它转换为 CATISpecObject_var 型,用这个语句
  CATISpecObject_var spPoint1(spPoint);
怎么老是报错,我想调用Update函数,应该怎么做
作者: nctusdk    时间: 2005-4-25 00:59
應該不是錯在這吧
你寫的沒錯啊
是Compile-Time Error還是Runtime Error啊?
Compile-Time Error-->也許你少include了什麼東西?
Runtime Error-->也許Update失敗丟出了Exception?
  
SDK.
作者: liuruixiao205    时间: 2005-4-26 09:29
我感觉也是,很多都是直接复制的。
  CATBaseUnknown * pLastPathElement;
  pLastPathElement=_daPathElement->GetElementValue();
  spPoint1=pLastPathElement;
还有这个也报错说不能从CATBaseUknown 类型转换为CATPoint_var类型。我只是把别人的原程序的CATSurface换为了CATPoint类型就错了。哪位高手能指点一下这两个的原因
错误:cannot convert from 'class CATBaseUnknown *' to 'class CATPoint *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
作者: liuruixiao205    时间: 2005-4-26 09:47
谢谢nctusdk兄,第一个就是你说的错误。
但第二个好像不是。错误出在用MKMK编译的时候。
作者: liuruixiao205    时间: 2005-4-26 17:01
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
  
应该是这个原因,但我不太懂是什么意思,应该怎么改。
作者: liuruixiao205    时间: 2005-4-27 09:54
等待中......................
作者: nctusdk    时间: 2005-4-29 09:20
cannot convert from 'class CATBaseUnknown *' to 'class CATPoint *'  
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
這代表...你搞錯了...@@
你的spPoint不是一個smart pointer...也就是說他不是CATPoint_var型別喔
而是CATPoint*型別
所以不可以直接硬轉
因為在CAA中指個同一個object的每一個interface的instance指標可能是不同的
請用QueryInterface或是把spPoint改成Smart Pointer
  
CATPoint *pPoint1 = NULL;
...
CATBaseUnknown * pLastPathElement;  
pLastPathElement=_daPathElement->GetElementValue();  
...
pLastPathElement->QueryInterface(IID_CATPoint,(void**)[$pPoint)]
  
或是
  
CATPoint_var spPoint = NULL_var;
...
CATBaseUnknown * pLastPathElement;  
pLastPathElement=_daPathElement->GetElementValue();  
...
spPoint = pLastPathElement;
  
SDK.
作者: liuruixiao205    时间: 2005-4-30 15:47
谢谢nctusdk兄




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