![]() |
【转帖】assert in zoomextents
assert in zoomextents
assert in zoomextents i'm getting an assert in zoomextents (on any file). i'm obviously not initializing something -- followed the singledoc example, i thought, exactly. if i don't do a zoomextents i can vectorize the file with no problem. the actual assert text is: source\ge\gegbl.cpp: invalid execution in my stack trace it looks like line 24. the relevant part of the stack trace at the time of the assert looks like this. the code passed to ge_error is 83 (53h). odassert() line 79 + 0x14 odgematrix2d::operator[]() line 24 + 0x11 ge_error() line 218 + 0xc odgematrix3d::inverse() line 91 + 0x7 odgsbasevectorizeview::getoutputextents() line 2569 + 0x3c odgsbasevectorizeview::viewextents() line 2609 + 0xc odabstractviewpeforgsview::viewextents() line 339 + 0x1f odabstractviewpe::zoomextents() line 215 + 0x1b any insight or clues to what to look for would be appreciated. last edited by loumf; 6th december 2007 at 05:43 amfff">. reason: disabled smilies more info i got it to work by adding the equivalent of: m_pdevice->onsize(outputrect); before i call zoomextents. in singledoc, i see no such call before zoomextents. anyway, it's working, but i'd like to understand why if anyone has any idea. hello, does it reproducible in mfcapp? may be some code wasn't shared between singledoc and mfcapp (mfcapp is our main sample)? from the sample: songledoc->singledocview.cpp @ line 249 code: void csingledocview::onsize(uint ntype, int cx, int cy) { if(!m_pdevice.isnull() && cx && cy) { crect rc; getclientrect(rc); /********************************************************************/ /* update the client rectangle */ /********************************************************************/ odgsdcrect outputrect( odgsdcpoint(rc.left, rc.bottom), odgsdcpoint(rc.right, rc.top) ); m_pdevice->onsize(outputrect); } }so it is in fact calling onsize. if i had to guess, somewhere within oddbgsmanager::setupactivelayoutviews or csingledocview::setviewportborderproperties, a call to onsize is created. |
所有的时间均为北京时间。 现在的时间是 08:06 PM. |