pqs001 发表于 2005-9-27 16:34:00

[求助]反复执行偏移操作时出现的错误,百思不得其解,请大家帮忙解惑!

<P><STRONG>不断进行偏移操作,大概12次左右(次数要看偏移对象尺寸)出现如下错误,百思不得其解!肯定大家帮忙解惑!</STRONG></P>
<P>执行到该句时:<BR><FONT color=#0000ff>pPolyline-&gt;getOffsetCurves(offsetDist,offsetCurves);</FONT></P>
<P><FONT color=#000000><STRONG>检查到此时pPolyline为非空!</STRONG></FONT></P>
<P>弹出对话框:<BR><FONT color=#ff0000>acad.exe 中的 0x0a7a9f05 (1dxfwork.arx) 处未处理的异常:0xC0000005: 读取位置 0x000ac130 时发生访问冲突 。</FONT></P>
<P>光标停在:<BR><FONT color=#ff00ff>atlsimpstr.h</FONT>中的<BR><FONT color=#0000ff>struct CStringData<BR>{<BR>&nbsp;...<BR>&nbsp;...<BR>&nbsp;void Release() throw()<BR>&nbsp;{<BR>&nbsp;&nbsp;ATLASSERT( nRefs != 0 );</FONT></P>
<P><FONT color=#0000ff>&nbsp;&nbsp;if( _InterlockedDecrement( &amp;nRefs ) &lt;= 0 )<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;<FONT color=#ff0000>pStringMgr-&gt;Free( this );&nbsp;&nbsp;//停于此处</FONT><BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;...<BR>&nbsp;...</FONT>&nbsp;</P>
<P><FONT color=#000000 size=2><STRONG>开发环境是 vc2002 + objectarx2005 + autcacad2005</STRONG></FONT></P>

pqs001 发表于 2005-9-27 21:55:00

程序以前是用objectarx2000编写的,在acad2000下没什么问题,升级后,就有这种问题了

pqs001 发表于 2005-10-6 13:14:00

<P>问题解决了,过程如下:</P>
<P>&nbsp;</P>
<P>
<TABLE height="100%">
<TBODY>
<TR>
<TD colSpan=2>
<P><FONT id=text3 style="FONT-SIZE: 10pt" face="宋体,verdana, arial, helvetica">问题解决了,大概是内存溢出什么问题吧<BR><BR>问题不在偏移,而在定义了一个CString类型的数据,反复进行操作,一直没有释放releaseBuffer,后来都改用char*, 让c++自己去管理,就没事了。<BR><BR>这种问题真是……</FONT> </P>
<P><STRONG><FONT face=宋体>晓东cad家园的masterhe</FONT></STRONG>&nbsp;斑竹说:</P></TD></TR>
<TR>
<TD vAlign=bottom colSpan=2><BR><FONT face=宋体 size=2><STRONG>这是VC++7.0的Bug,需要安装SP1</STRONG></FONT> </TD></TR></TBODY></TABLE></P>
<P>&nbsp;</P>
页: [1]
查看完整版本: [求助]反复执行偏移操作时出现的错误,百思不得其解,请大家帮忙解惑!