baitang36 发表于 2021-12-14 22:31:56

[原创]用保留函数制作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:04:50

本帖最后由 baitang36 于 2021-12-15 11:29 编辑

tryhi 发表于 2021-12-15 10:06
楼主好像少说了一个很重要的变量,:fas
这是一个保留符号。
再加一个:txt,支持dcl文件

cchessbd 发表于 2024-4-28 14:41:40

本帖最后由 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

麻烦您百忙之中帮忙解答一下。

baitang36 发表于 2022-3-21 08:15:47

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

print1985 发表于 2021-12-14 23:29:13

盛老师又出新作品了 立即试用 感谢感谢

wzg356 发表于 2021-12-14 23:57:40

这个高级:victory::victory::victory:

LIULISHENG 发表于 2021-12-15 08:07:13

学习一下

mokson 发表于 2021-12-15 09:33:40

大佬太高能,凡辈无法跟随。

pxt2001 发表于 2021-12-15 09:54:21

曾经的大佬都隐退了(潜水太深),楼主就是现在的大佬。

tryhi 发表于 2021-12-15 10:06:42

楼主好像少说了一个很重要的变量,:fas

不死猫 发表于 2021-12-15 11:14:33

还有:dcl :dvb,用来打包其他文件。另外前面:开头那几个也是常量标志,都可以用隐藏函数获取。

不死猫 发表于 2021-12-15 11:26:45

另外有三种制作vlx的方法,一是用vlx pack把第二个参数表中:fas后面文件名的字符串改为fas实际编码字符串,二是通过vlispfasresupdate 制作对齐vlx 编码然后补上vlx 头部表,三是用文本做一个prv文件,然后用prv build、fetch函数做出vlx
页: [1] 2 3
查看完整版本: [原创]用保留函数制作vlx