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);
:

drxinitmodelergeometry();
// exprotocolextension theexprotocolextensionobject;
// theexprotocolextensionobject.initialize();
......
// theexprotocolextensionobject.uninitialize();
:

drxuninitmodelergeometry();
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!