几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(C++)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


 
 
主题工具 搜索本主题 显示模式
旧 2009-04-16, 10:21 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】大侠帮我:arx程序运行几次再运行就说内存错误,求解决办法

大侠帮我:arx程序运行几次再运行就说内存错误,求解决办法
大侠帮我:arx程序运行几次再运行就说内存错误,求解决办法
我是新手,不熟悉arx,遇到一个问题,求帮助.
问题是这样的,我编了段程序,运行3-5次之后,程序就出错,
此主题相关图片如下:
问题肯定出在内存管理上,但我不知到底身什么错误,求哪位指点一下.
回复
有源程序才可以看啊.
change your life style.
arx内存不释放的情况下连续运行造成的再进入数据位置错误。你每运行一次arx程序,里面的数据就占用一块内存,autocad调入给每一个arx程序的内存有限,如果arx不释放自己的数据,每次运行都是重新分配,最终会造成内存冲突。
比较简单的解决方法是每运行完一次arx就自动卸载,下一次运行自动加载,保证自动释放/重新分配内存。
virtue is like a rich stone, best plain set.
-- francis bacon, <of beauty>
那是内存越界了。
3楼的说法是错误的。
即使有内存没释放,也只是占用尽可能多的内存,不会出错。
“每运行完一次arx就自动卸载...”的说法也是不对的,真正内存清除是在进程退出后操作系统作清理。
4楼斑竹应该试过arx使用global data重复运行的情况,不卸载的话,每次重复运行都继续使用上次运行的结果,如果卸载再加载,这些数据会被重新初始化。我说的卸载不是单说卸载这个动作本身,还包括卸载中的清理命令。
每次arx运行使用的内存不一定是同一物理区域,我并没有说卸载等于清除使用过的内存内容;内存错误的原因也可以是程序内部其他地方没有考虑的内存管理问题,但我相信您也一定用system monitor看过arx卸载和不卸载连续运行时autocad进程的内存使用情况了。卸载只是一个简单一锅端的方法。
virtue is like a rich stone, best plain set.
-- francis bacon, <of beauty>
全局变量的初始化确实如您所说,但是解决不了楼主内存越界的问题
我的确急躁了一些,越界的问题出在哪里是看代码。但用强迫卸载的确解决过类似的重复运行报错。
也有可能是debug/release版本问题。
virtue is like a rich stone, best plain set.
-- francis bacon, <of beauty>
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
 


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 06:49 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多