怪事,程序编译成VLX不能运行
;;;(defun insdcl01(i / k);;;(setqk (* 2 (atoi i))
;;;lst1 (vl-remove nil (mapcar '(lambda (x) (nth k (read x))) lst))
;;;lst2 (vl-removenil
;;; (mapcar '(lambda (x) (nth (1+ k) (read x))) lst)
;;; )
;;;)
;;;(show_list "zl_1" lst1) ;lst1内nil必须去除。
;;;(set_tile "lj" (car lst2))
;;;)
;;;(defun insdcl02(j / lst3)
;;;(setq lst3 (nth (atoi j) lst2))
;;;(set_tile "lj" lst3)
;;;)
(defun c:dkwj (/ #wjlj bb chudir dcl_id fn lst lst1 lst2 strl)
(XD::Begin)
(vl-Load-COM)
(setqstrl '("dkwj:dialog {label = \"打开文件\";"
"\n:boxed_row {"
"\n:list_box {key = \"zl_0\";"
"\n width=20;height=20;}"
"\n:list_box {key =\"zl_1\";"
"\n width=20;height=20;}}"
"\n :edit_box {label = \"路径:\";width=20; key=\"lj\";}"
"\n ok_cancel;"
"\n }"
)
fn (xd::dcl:make strl)
dcl_id (load_dialog fn)
)
(if (not (new_dialog "dkwj" dcl_id))
(exit)
)
;;;(setqchudir "E:\\MYTOOLS\\lisp\\";设置初始目录
;;;lst (XD::List:FromFile (strcat chudir "打开文件.txt"))
;;;lst1 (mapcar '(lambda (x) (car (read x))) lst)
;;;lst2 (mapcar '(lambda (x) (nth 1 (read x))) lst)
;;;)
;;;(show_list "zl_0" '("打开文件" "打开网页"))
;;;(show_list "zl_1" lst1)
;;;(set_tile "lj" (car lst2))
;;;(action_tile "zl_0" "(insdcl01$value )")
;;;(action_tile "zl_1" "(insdcl02$value)")
(action_tile
"accept"
"(done_dialog 1)"
)
(action_tile "cancel" "(done_dialog 0)")
(setq bb (start_dialog))
(unload_dialog dcl_id)
(vl-file-delete fn)
(princ)
)程序单独或跟别的程序最后编译成Vlx能运行,如果放在别的程序前面就出现“未知命令dkwj”请高手帮忙看一下
我也遇到了同求 别的程序是指任何程序吗?比如跟一个(defun c:tt ()(princ "a"))一起编译也会吗? 本帖最后由 gslee 于 2021-6-15 22:57 编辑
我的程序加载后 ,有时正常,有时显示没有这个命令
页:
[1]