查看单个帖子
旧 2009-05-07, 03:40 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】setinsunits Throws Exception

setinsunits throws exception
setinsunits throws exception
m_rdxffile->setinsunits(oddb::kunitsmillimeters);
this code throws an exception.
i've created a new drawing and i need to set the insunits. like it is done with the insunits command in autocad.
how can i do that?
-rune jorgensen
be sure the m_rdxffile is a valid pointer to oddbdatabase object.
is it oddbdatabaseptr or oddbdatabase *?
the code below will crash:
code:
oddbdatabase * pdb = pservices->createdatabase();
pdb->anyfunction(); // crash because database is destroyed
createdatabase() returns smart pointer. number of references to database is 1. smart pointer destructor destroys database.
sergey slezkin
oddbdatabaseptr
m_rdxffile;
it isn't a "read-only variable" issue?
-rune jorgensen

this is not a read-only variable.
is the pointer to database valid by the moment you call setinsunits()? can you call any other set<variable>() function at this moment?
what kind of exception do you get?
is it possible to reproduce the situation in one of our samples (for example by inserting a piece of code in odwriteex)?
sergey slezkin
sergey, you were right as usual. it turned out that setinsunits() could under certain condition be called before createdatabase(). that fixed, everything works as expected.
thanks!
-rune
-rune jorgensen
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)