[原创]用保留函数制作vlx
本帖最后由 baitang36 于 2022-3-9 09:15 编辑vlx-pack这个保留函数,可以用于制作vlx
它和vlisp-compile一样,需要加载vlide后才能使用。
感兴趣者自己试验吧,源码如下:
(startapp "c:/06/sleep.dat"); 延时三秒关闭vlide
(c:vlide) ;加载vlide
;(princ "vlide窗口已关闭!")
;(princ)
(load "c:/06/syz-vlx-pack.fas");加载保留函数
(setq list1 '((:protected . T)
(:active-x . T)
(:separate-namespace) ;非独立名称空间
(:load-file-list (:fas "1") (:fas "2")) ;需要加载的fas
)
) ;_ setq
(setq list2 (list (list :fas "d:/1.fas") (list :fas "d:/2.fas")))
(vlx-pack "d:/2t.vlx" list1 list2)
本帖最后由 baitang36 于 2021-12-15 11:29 编辑
tryhi 发表于 2021-12-15 10:06
楼主好像少说了一个很重要的变量,:fas
这是一个保留符号。
再加一个:txt,支持dcl文件
本帖最后由 cchessbd 于 2024-4-28 14:54 编辑
baitang36 发表于 2021-12-15 11:04
这是一个保留符号。
再加一个:txt,支持dcl文件
盛老师您好,请教一个问题: 拖入加载syz-vlx-pack.fas后,我学习您这个1.1的版本来自动生成vlx。
我采用的是2种方式生成,一种是直接原始多个fas文件,一种是多fas文件合并为一个fas再用syz-vlx-pack生成。
现在是能够生成vlx,生成的vlx不能正常运行。
但生成后的vlx(包含syz-vlx-pack.fas)有很多bug:cad中拖放加载后,不能运行syz-vlx-pack,丢失其他函数。
和.prv文件编译的对比,功能完全不正常。贴上我的.prv文件
;;; Visual LISP 生成文件 L2F_F2A_CMP_TRYHI-L2F_RND_P saved to: at:
(PRV-DEF (:target . "L2F_F2A_L2X_F2X_CMP_TRYHI-L2F_RND_P.VLX")
(:active-x . T)
(:separate-namespace)
(:protected . T)
(:load-file-list
(:fas "__GetVlxPath.fas")
(:fas "syz-vlx-pack.fas")
(:fas "_write-nb-str.fas")
(:fas "CMP合并多个LSP并编译.fas")
(:fas "L2F批量转FAS0113.fas")
(:fas "RND.fas")
(:fas "TRYHI-L2F.fas")
)
(:require-file-list (:txt "sleep0.3秒关闭.txt"))
(:ob-directory)
(:tmp-directory)
(:optimization . st)
)
;; EOF
麻烦您百忙之中帮忙解答一下。
1028695446 发表于 2022-3-20 17:23
您好,请问可以举个例子吗,不明白怎么用,关于打包DCL的
(load "c:/06/syz-vlx-pack.fas");加载保留函数
(setq list1 '((:protected . T)
(:active-x . T)
(:separate-namespace) ;非独立名称空间
(:load-file-list (:fas "1") (:fas "2")) ;需要加载的fas
)
) ;_ setq
(setq list2 (list (list :fas "d:/1.fas") (list :fas "d:/2.fas")))
(vlx-pack "d:/2t.vlx" list1 list2)
这就是源码,原理很简单。准备好两个表,把你需要打包进vlx的文件路径写到表里,然后调用vlx-pack 盛老师又出新作品了 立即试用 感谢感谢 这个高级:victory::victory::victory: 学习一下 大佬太高能,凡辈无法跟随。 曾经的大佬都隐退了(潜水太深),楼主就是现在的大佬。 楼主好像少说了一个很重要的变量,:fas 还有:dcl :dvb,用来打包其他文件。另外前面:开头那几个也是常量标志,都可以用隐藏函数获取。 另外有三种制作vlx的方法,一是用vlx pack把第二个参数表中:fas后面文件名的字符串改为fas实际编码字符串,二是通过vlispfasresupdate 制作对齐vlx 编码然后补上vlx 头部表,三是用文本做一个prv文件,然后用prv build、fetch函数做出vlx