几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】error not that kind of class exception thrown from dd1.14.0 (http://www.dimcax.com/hust/showthread.php?t=16102)

yang686526 2009-05-05 09:43 AM

【转帖】error not that kind of class exception thrown from dd1.14.0
 
error: not that kind of class exception thrown from dd1.14.0
error: not that kind of class exception thrown from dd1.14.02
hi,
i upgraded my application from dd1.11 to dd1.14.02 for dotnet2003. now there is a strange exception thrown from dd1.14.02 when exploding a block reference: error: not that kind of classfff">. before upgrading to dd1.14.02, the following function worked fine.
the following is the function used to explode the block reference in my application:
void oddbwrapper::explode(oddbblocktablerecordptr pfatherblock, oddbblockreferenceptr pinsert )
{
oddbobjectid blockid = pinsert->blocktablerecord();
if( blockid.isnull() )
{
assert( 0 );
return;
}
oddbblocktablerecordptr prefblock = blockid.safeopenobject
(oddb::kforwrite);
oddbobjectiteratorptr pentiter = prefblock->newiterator();
for (; !pentiter->done(); pentiter->step())
{
oddbentityptr pentity = pentiter->objectid().safeopenobject
(oddb::kforwrite);
if( pentity->iskindof(oddbblockreference::desc() ))
{
oddbblockreferenceptr pinsertref = pentity;
explode(prefblock, pinsertref);
}
}
odresult res;
odrxobjectptrarray entityarray;
res = pinsert->explode( entityarray );
int entitynum = entityarray.size( );
if( res == eok && entityarray.size( ) > 0 )
{
for( int i = 0; i< entitynum; i++ )
{
oddbentityptr pentity = (oddbentityptr)entityarray[i];
pfatherblock-
>appendoddbentity( pentity );
}
pinsert->erase( true );
}
}
when cleaning the callstack, the following code ~odarray() { buffer()->release(); } fff">throws this exception.
what is the problem in my code or in dd?
any help appreciated.
probably the block being exploded contains a dimension entity. check please if recomputedimblock module presents in your application. dimension block recomputing was moved to a separate module. see release notes.
sergey slezkin


所有的时间均为北京时间。 现在的时间是 04:40 AM.