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

yang686526 2009-05-07 12:00 PM

【转帖】pure virtual function call odprotocolextensionimplodrxclass
 
pure virtual function call odprotocolextensionimpl<odrxclass
pure virtual function call odprotocolextensionimpl<odrxclass>::~odprotocolext ensionim
hi,
im getting the debug error:
runtime error!
r6025
-pure virtual function call
this comes from the destructor of
odprotocolextensionimpl<odrxclass>::~odprotocolext ensionimpl<odrxclass>()
can anybody tell me whats wrong?
normaly this happens if a virtual method is called from the constructor
so the base class funktion will be called!
thanx
rob
hi,
can you print all the call stack?
this is caused because the destructor of the base class is calling a pure virtual method, which is overriden in some of the inheritants.
regards
here it is:
> msvcr71d.dll!_nmsg_write(int rterrnum=25) line 195 c
msvcr71d.dll!_amsg_exit(int rterrnum=25) line 399 + 0x9 c
msvcr71d.dll!_purecall() line 53 + 0x7 c
myapp.exe!odprotocolextensionimpl<odrxclass>::~odp rotocolextensionimpl<odrxclass>() + 0x52 c++
msvcr71d.dll!doexit(int code=0, int quick=0, int retcaller=0) line 376 c
msvcr71d.dll!exit(int code=0) line 303 + 0xd c
myapp.exe!wwinmaincrtstartup() line 406 c
kernel32.dll!77e987e7()
ntdll.dll!77889964()
ntdll.dll!77889964()
problem is there is no source for the odprotocolextensionimpl and in the doc
it is not mentioned!
thanx
rob
have you called all *uninitialize() methods before exiting the application?
one uninitialize per each initialize in reverse order:
code:
odinitialize(&svcs);
::odrxinitmodelergeometry();
// exprotocolextension theexprotocolextensionobject;
// theexprotocolextensionobject.initialize();
......
// theexprotocolextensionobject.uninitialize();
::odrxuninitmodelergeometry();
oduninitialize();
sergey slezkin
thanx thats the problem i called oduninitialize(); in the destructor
of the class where i used the dwgdirect stuff!
so i moved it to the appinstance now its fine!
thanx again!


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