龙城飞将36 发表于 2014-12-17 09:16:39

怪事,程序编译成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”请高手帮忙看一下

zhxooo555 发表于 2020-6-3 13:59:57

我也遇到了同求

tryhi 发表于 2020-6-4 16:40:42

别的程序是指任何程序吗?比如跟一个(defun c:tt ()(princ "a"))一起编译也会吗?

gslee 发表于 2021-4-1 05:12:45

本帖最后由 gslee 于 2021-6-15 22:57 编辑

我的程序加载后 ,有时正常,有时显示没有这个命令
页: [1]
查看完整版本: 怪事,程序编译成VLX不能运行