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

oddbdatabase::readfile(odstreambuf*) problems
oddbdatabase::readfile(odstreambuf*) problems
hi,
i'm getting an odd error at runtime and thought to ask here about it.
basically, i'm trying to load a dwg file from a stream, but i'm getting a "debug assertion failed!" on source\odstreambuf.cpp line 55. i'm running under winxp with ms vs 2005 and do not have access to the cpp file mentioned. here's the code.
int f = openfile(filename, &of, of_read);
oduint8array buffer;
buffer.resize(392806); // yes, the file is exactly this many bytes
_lread(f, (char*)buffer.asarrayptr(), buffer.size());
odstreambufptr odfstream = odflatmemstream::createnew(buffer.asarrayptr(), buffer.size());
oddbdatabaseptr pdb;
pdb = svcs.createdatabase(false);
pdb->readfile(odfstream);
any ideas? thanks!
- albert
last edited by jpalo@snowbound.com; 17th september 2008 at 01:40 pmfff">.

hi,
i found an answer via:
it works, but is there a more elegant solution? this can't be the right way to do it.
albert
last edited by jpalo@snowbound.com; 17th september 2008 at 01:40 pmfff">.
while loading dwg filename() is required to return it from oddbdatabase:riginalfilename().
so you need to provide memory stream inheritor and take care about the file name.
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)