![]() |
【转帖】runtime Error
runtime error
runtime error my project is a mdi application and has sub static lib projects & dll projects. i am doing something as below class cmyapp : public cwinapp { ............. ............. public: odrxobjectimpl<myservices> m_svcs; } bool cmyapp::initinstance() { ............. ............. odinitialize(&m_svcs); } int cmyapp::exitinstance( ) { ............. ............. oduninitialize (); } in one of the sub project (dll) , (this is having database specific code) , i use something as below the constructor of the class cmyline looks similar to as shown below cmyline::cmyline() { m_poddbentity = (oddblineptr) oddbline::createobject(); //m_poddbentity is oddbobjectptr type ((oddblineptr)m_poddbentity)->setstartpoint(odgepoint3d(0,0,0)); ((oddblineptr)m_poddbentity)->setendpoint(odgepoint3d(0,0,0)) } cmyline class the corresponding oddbline object and i am instatiationg cmyline class from another sub project (static lib) & i am getting oderror. it fails at the first line in the constructor of cmyline. (ie. at call to oddbline::createobject()) & breaks at the call oddb_declare_members(oddbline); defined in dbline.h class toolkit_export oddbline : public oddbcurve { public: oddb_declare_members(oddbline); //fails at this line please guide me to resolve the problem. odinitialize must be called before instantiating any dd objects. sincerely yours, george udov thanks for the reply. unfortunately my problem is not fully solved. i was hoping that i will have to call odinitialize() once at the start of my application and call oduninitialize() prior to the end of the application. can i call odinitialize() any number of times? in my case the oddatabaseptr is kept alive till one closes the drawing. does calling odunitialize() in between can affect the validity of the database pointer? i do not have the earlier reported problem when i call oddbline::createobject() directly without wrapping the call in the constuctor of my class. earlier i have tried a different way too and that time i didn't experience any problem, though the oddbline::createobject() was wrapped inside my entity class. however , i had problems in opening certain database objects directly by calling from the static lib project. in many cases oderror variable traced in the catch block displays "vector deleting destructor" and calling m_svcs.geterrordescription(e.code()).c_str() in certain cases prints the error as "object erased" |
所有的时间均为北京时间。 现在的时间是 08:26 PM. |