![]() |
【转帖】making progress bu
making progress but.....
making progress but..... well, i was able to initialize the dwgdirect libraries and open a drawing. the problem now is that after opening a drawing using exhostappservices::readfile(....), when i close the application i get an exception. what am i supposed to do when i am finished with the database. i know i have to call oddbdatabase::release() but am i supposed to call a function to close the database? if so, which is it? i don't see a closefile, closedrawing, closedatabase function anywhere in the odddatabase class. any help? mike b quote: originally posted by mikeb well, i was able to initialize the dwgdirect libraries and open any help? mike b with addition to the above, i have tried to add a line to the database and i get the following linker error : code: link : warning lnk4098: defaultlib "msvcrt" conflicts with use of other libs; use /nodefaultlib:library dwgdoc.obj : error lnk2001: unresolved external symbol "public: __thiscall oddbline::oddbline(class odgepoint3d const &,class odgepoint3d const &)" (??0oddbline@@qae@abvodgepoint3d@@0@z) debug/hollowcoredetailer.exe : fatal error lnk1120: 1 unresolved externals now i have #included dbline.h and i am sure i have all the required .lib files include and the necessary headers. here is the code i have: code: odrxobjectimpl<exhostappservices> svcs; oddb::measurementvalue measure = oddb::kenglish; m_pdb = svcs.createdatabase(true, measure); odgepoint3d sp(0,0,0); odgepoint3d ep(100, 0, 0); oddbline ln(sp, ep); oddbblocktablerecordptr pspace = m_pdb->getactivelayoutbtrid().safeopenobject(oddb::kforwrite); pspace->appendoddbentity(&ln); now i don't have any problems with the odgepoint3d class objects with respect to the linker, so, is there any suggestions? mike b quote: originally posted by mikeb with addition to the above, i have tried to add a line to the [/code] now i don't have any problems with the odgepoint3d class objects with respect to the linker, so, is there any suggestions? mike b hmmm, is this a bug? create a line object without the initialization and set the start and end points using the setstartpoint(...) and setendpoint(...) functions, i do not have a problem with the linker. it appears that the initialization ctor is the problem? undefined? mike b the right code should be: oddblineptr pline = oddbline::createobject(); pline->setstartpoint(...); pline->setendpoint(...); // ... pspace->appendoddbentity(pline); do not use local variables for entities and db objects - they must be created by the createobject() function and by using smart pointers. objectarx allow different constructors for db objects but in dwg direct only the default contstructors are used; so initialize the objects use their set functions. hope this helps. best regards chudomir |
所有的时间均为北京时间。 现在的时间是 12:58 PM. |