几何尺寸与公差论坛------致力于产品几何量公差标准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)
-   -   【转帖】dwgdirect 1.12.04.00 crash (http://www.dimcax.com/hust/showthread.php?t=15915)

yang686526 2009-05-05 08:15 AM

【转帖】dwgdirect 1.12.04.00 crash
 
dwgdirect 1.12.04.00 crash
dwgdirect 1.12.04.00 crash
when i run the odreadex sample app on the attached data, it crashes.
i've built the app with vs.net 2003. the crash occurs on the debug build (and presumably release).
here's the output:
2export_cad.dwg
developed using dwgdirect, 1.12
load started ------------------------
meter limit: 1
load completed------------------------
progress: 100.00%
load started ------------------------
meter limit: 284
progress: 0.70%
progress: 1.41%
progress: 2.11%
progress: 2.82%
progress: 3.52%
progress: 4.23%
progress: 4.93%
assertion failed: rt==oddb::ksoftpointerref, file source\database\dwgfiler\in\ob
jectdwginstream.cpp, line 133
attached files
p.s. if problem ends up being specific to the odreadex project, please give solution here as i am using code from this project in my app.
the oddbblockbegin entity (handle 0x24) in the file contains a reference of invalid type (oddbblockbegin entity with handle 0x24). it is not a crucial point in this case, but in some other cases acad crashes on similar errors. dd loads this file correctly (and without asserts in release).
odreadex (debug version) is terminated by assert() function. to avoid crashes you can replace assert by using odsetassertfunc() (from diagnostics.h). for instance:
code:
void exassertstub(const odchar* /*expresssion*/, const odchar* /*filename*/, int /*nlineno*/)
{
}
// in your code after dd initialization:
odassertfunc poldassert = odsetassertfunc(exassertstub);
...
regards,
sergey vishnevetsky
thanks for the quick response.


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