明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 12639|回复: 78

[源码] 自动打包、编译、备份、加密lisp源码!

    [复制链接]
发表于 2022-9-21 11:42:39 | 显示全部楼层 |阅读模式
本帖最后由 MUSIC-DIE 于 2023-6-11 17:32 编辑

在lisp开发过程中有以下痛点:
1、管理lisp源码的过程中,如果使用vlide编译,每个lisp源码都会单独编译出一个fas文件,而我们需要的只是一个fas文件包含所有功能
2、多个lisp源码文件,有利于我们单独管理每个功能,不至于一个文件报错,所有功能停摆
3、GIT版本管理很方便,学习却有门槛
4、源码被随便反编译

附件在尽可能简单的基础上解决了这部分问题:
1、附件中命令运行后,会将指定文件夹下的文件合并为一个lisp源码文件
2、将此源码文件备份起来,以备错误操作后,可以查看以前的正确源代码
3、备份后自动调用Vlide进行编译,并输出到指定的文件夹
4、集成了海大师(tryhi)的可变长参数功能,如果在代码中指定了可变长的函数,将自动对其进行处理,可在一定程度上加密你的代码

注:代码中使用了论坛中其他人的源码,已不可考,对此表示感谢

此图中圈出了需要自定义的地方



补充方法:
(vl-load-com)
(defun Get-Folder ( NAME / get)
(if (setq get (Vlax-Invoke-Method (Vlax-Get-Or-Create-Object "Shell.Application") 'BrowseForFolder 0 NAME 1))
   (setq get (vlax-get-property (vlax-get-property get 'self) 'path))
)  
(if (vl-file-directory-p get) get)
)



鉴于很多人由于各种问题无法使用本插件

移除了导致问题的方法以及对WMCMP命令进行了更简单化的处理,现在不需要你进行任何修改,只需要保证以下两点就可以正常使用

1、执行WMCMP命令之后让选择保存编译后fas文件地址,此地址不能在磁盘根目录,也就是D:\\TEST可以,D:\\不行

2、所选择的目录下必须有一个名为备份的文件夹 也就是  D:\\TEST\\备份  此文件夹将存储此次编译的备份

第二步选择的文件夹为源码所在地址

















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 17明经币 +16 金钱 +10 收起 理由
pzweng + 1 很给力!
tomonkey239 + 1 赞一个!
jltx123456 + 1 赞一个!
趣意人生 + 1 很给力!
guangdonglbq + 1 赞一个!
mituzhe + 1
tigcat + 10
Bao_lai + 1 赞一个!
bssurvey + 1 赞一个!
USER2128 + 1 很给力!

查看全部评分

"觉得好,就打赏"
    共1人打赏
 楼主| 发表于 2022-9-22 12:02:22 | 显示全部楼层
cghdy 发表于 2022-9-22 09:35
有点懵,定义好了PATH和file:dir:s,但MFC无法赋上值,(close MFC)报错提示“streamp nil”,备份文件和 ...

更新版已经移除了这个方法,本意是让cad窗口置前
回复 支持 1 反对 0

使用道具 举报

发表于 2022-9-21 13:07:56 | 显示全部楼层
感谢楼主的分享!
想请教一下需要修改的部份:
①假设我的电脑windows login name是Administrator,那是不是改成
getvar "Administrator")) "Administrator")
②打包完成的文档存放位置:意思就是打包完的文档看是要放在哪里文件夹,对吧!
③合并的目标文档,备份文档:这个我没修改
④源文档和打包完成文档的存放地址关系:这个我没修改
⑤运行後出现错误消息:损坏的参数类型: stringp nil
回复 支持 1 反对 0

使用道具 举报

发表于 2022-9-22 09:35:22 | 显示全部楼层
本帖最后由 cghdy 于 2022-9-22 09:57 编辑
MUSIC-DIE 发表于 2022-9-21 13:58
运行逻辑:给定想要放置编译后fas文件地址  也就是path变量
程序会在这个文件地址下生成一个备份文件夹  ...

有点懵,定义好了PATH和file:dir:s,但MFC无法赋上值,(close MFC)报错提示“streamp nil”,备份文件和文件夹也未生成。

——问题找到了,open函数只能生成文件,不能生成文件夹。



还有一个问题就是(CKQZ (vla-get-Name (*DOC*)))中*DOC*未定义,不要这个函数也能运行,不明白这个函数的具体作用。




发表于 2022-9-21 11:48:16 | 显示全部楼层
哇,这么棒。
感谢分享
发表于 2022-9-21 12:00:15 | 显示全部楼层
被免费分享是啥意思呢
发表于 2022-9-21 12:38:33 | 显示全部楼层
感谢分享   

评分

参与人数 1明经币 +1 收起 理由
bonny + 1 相当优秀!

查看全部评分

 楼主| 发表于 2022-9-21 13:58:14 | 显示全部楼层
p-3-ianlcc 发表于 2022-9-21 13:07
感谢楼主的分享!
想请教一下需要修改的部份:
①假设我的电脑windows login name是Administrator,那是 ...

运行逻辑:给定想要放置编译后fas文件地址  也就是path变量
程序会在这个文件地址下生成一个备份文件夹  
源文件和打包文件地址关系,是path和你的lisp源码文件地址关系   不会写的话这个file:dir:s就是你的源码文件夹地址
发表于 2022-9-21 14:45:06 | 显示全部楼层
刚好需要这样的程序
发表于 2022-9-21 14:57:29 来自手机 | 显示全部楼层
好东西,感谢分导!
发表于 2022-9-21 14:59:18 | 显示全部楼层
谢谢分享,学习学习!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 05:43 , Processed in 0.168687 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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