明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1468|回复: 5

[提问] 有什么办法让死循环的DCL程序中断结束

[复制链接]
发表于 2016-4-19 09:36:50 | 显示全部楼层 |阅读模式
有些第三方的vlx程序,用了对话框,程序又写得不好,点几下没响应了,图纸还没保存,自动保存的图没有改过的内容。
按esc键无法中断,有什么办法让它暂停或结束而不终止cad进程,或者至少让我保存一下。
能不能再开一个cad,打开vlisp编辑器来调试原来的进程呢?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2016-4-19 22:44:48 | 显示全部楼层
既然是烂程序就不要用了呀  你说用什么办法都是治标不治本   来个治根本的  自己写一个好点的程序
发表于 2016-4-19 23:14:31 | 显示全部楼层
本帖最后由 llsheng_73 于 2016-4-19 23:21 编辑

既然是vlx程序,那就是一般说来看不到代码,那怎么肯定说人家写得好不好?
别人写程序肯定首先以他自己的需求为出发点,处理些什么东东,怎么运行都是从对他自己最有利来考虑,你拿来一用,难免很多地方不如你的意,这很正常,因为它根本不就是针对你的问题写的。。。
程序运行后对话框一定时间内一直存在,对话框关不掉,点哪都没反应,这不一定是进入了死循环。。。
(我个人这样做过,在处理大师图形数据的过程中,不希望屏幕被人为缩放,我就先运行了一句(new_dialog ...)把对话框显示出来,但没运行(start_dialog),等数据处理完了再运行(done_dialog),这样程序看起来象死了一样,其实数据处理完了它会结束,当然,如果中间因为数据原因出错中断就彻底完了,只能强行关闭CAD,不然在vlide里边都没法返回正常)

不适用的东东不必要用,love1030312说得对,自己弄一个自己需要的
 楼主| 发表于 2016-4-20 08:52:41 | 显示全部楼层
llsheng_73 发表于 2016-4-19 23:14
既然是vlx程序,那就是一般说来看不到代码,那怎么肯定说人家写得好不好?
别人写程序肯定首先以他自己的需 ...

你说得对,你说的这种情况我找到方法了:外部vlisp向原来的cad进程发送done_dialog命令就可以了。

还有一种情况是(while t)这种死循环,一定要用vl.lppreset(1)来终止求值。具体怎么实现还要试试才行。
 楼主| 发表于 2016-4-20 14:16:45 | 显示全部楼层
实验证明通过CreateRemoteThread单独调用lppreset单独执行是不行的。
测试在vlide来执行是可以的,但为什么会出现这个问题,还要深入研究
发表于 2016-4-26 11:25:25 | 显示全部楼层
按ctrl+break强制中断
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-20 12:53 , Processed in 0.172073 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表