查看单个帖子
旧 2009-05-06, 04:27 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】iter 9method seek0 get error

iter (method seek) get error
iter (method seek) get error
hi,
how we find the linetypename from a spec. layer with seek-method ?
++++++++++++++++++++++++++++++
//iterate layertbl
...
//sep. c++block in func because equal variablename piter
{
oddblayertableptr plinetypes =
pdb->getlinetypetableid().safeopenobject();
oddbsymboltableiteratorptr piter = plinetypes->newiterator();
piter->seek(player->linetypeobjectid());
oddblayertablerecordptr plinetype =
piter->getrecordid().safeopenobject();
os << plinetype->getname() << ";";
}
....
++++++++++++++++++++++++++++++
we get follow message:
"unknown software exception" (0x80000003) at (0x01020ae23)
what is wrong ?
thanks fo help
ralph

hi,
probably you get exception because you are assigning linetype table pointer oddblayertableptr.
you need not use seek method you can open linetype table record directly having obtained its object id from layer.
oddblinetypetablerecordptr plinetype = player->linetypeobjectid().safeopenobject();
out << plinetype->getname();
[ august 23, 2002: message edited by: sergey slezkin ]</p>
sergey slezkin

hi sergey,
thanks for help, your was right ).
for other people here the right code sequend:
++++++++++++++++++++++++++++
oddblinetypetablerecordptr plinetype = player-&gt;linetypeobjectid().safeopenobject();
cout &lt;&lt; plinetype-&gt;getname().c_str();
++++++++++++++++++++++++++++
best regards to st.peterburg
ralph
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)