yaojing38 发表于 2023-12-26 16:44:32

LISP 动态加载DLL

本帖最后由 yaojing38 于 2023-12-26 17:02 编辑

lisp改文件地址方便结合了下大佬们的结晶 ,分享一下 把动态DLL和你要加载的DLL的地址替换成你的就行。(defun c:aa ()
(setvar "cmdecho" 0)
      (vl-load-com)
(if (null (getcname "AA_W"))
(vl-cmdf "netload" "D:\\lib\\动态加载22\\动态加载22\\obj\\Debug\\net40\\动态加载22.dll"))
(princ "\n")
(princ "\rD:\\lib2023\\myjob\\Project4\\Project4\\obj\\Debug\\net48\\Project4.dll") ;注意此处/r不能删了
(princ "\n")
(vl-cmdf "AA_W")
(princ)
)

。。

kozmosovia 发表于 2024-11-14 09:42:49

nuan1989 发表于 2024-5-12 12:43
你知道有没有法子让autolisp异步调用不, 类似线程调用. 不卡cad.想要弄个异步监测其他进程的消息.

lisp是面向过程的,不是面向对象的,所以,多线程支持是木有的。唯一的可能是后台再开一个隐藏的CAD运行另外的线程,效率上很差

yaojing38 发表于 2023-12-27 12:37:03

wangsr 发表于 2023-12-26 17:43
能给新人讲细点怎么用吗谢谢。


(vl-cmdf "netload" "D:\\lib\\动态加载22\\动态加载22\\obj\\Debug\\net40\\动态加载22.dll")) ;这里填附件的DLL地址
(princ "\rD:\\lib2023\\myjob\\Project4\\Project4\\obj\\Debug\\net48\\Project4.dll") ;注意此处/r不能删了 ;;这里填你要加载测试的DLL文件地址 使用LISP命令就可以实现动态加载你要测试的DLL文件

wangsr 发表于 2023-12-26 17:43:38

能给新人讲细点怎么用吗谢谢。

Bao_lai 发表于 2023-12-26 20:19:27

这是那个NetLoadX.dll么,写一个lisp先加这个dll,然后再从这个netloadx中加载自己的dll就不会文件占用了。

yaojing38 发表于 2023-12-27 12:41:18

Bao_lai 发表于 2023-12-26 20:19
这是那个NetLoadX.dll么,写一个lisp先加这个dll,然后再从这个netloadx中加载自己的dll就不会文件占用了。

是的,,只是改成用lisp获取地址

nuan1989 发表于 2024-5-10 20:58:26

但是怎么调用dll里面方法呢

yaojing38 发表于 2024-5-11 09:34:53

nuan1989 发表于 2024-5-10 20:58
但是怎么调用dll里面方法呢

?一个是要调试DLL地址,一个是动态加载的DLL文件的地址

nuan1989 发表于 2024-5-12 12:43:51

yaojing38 发表于 2024-5-11 09:34
?一个是要调试DLL地址,一个是动态加载的DLL文件的地址

你知道有没有法子让autolisp异步调用不, 类似线程调用. 不卡cad.想要弄个异步监测其他进程的消息.

yaojing38 发表于 2024-5-14 09:21:50

nuan1989 发表于 2024-5-12 12:43
你知道有没有法子让autolisp异步调用不, 类似线程调用. 不卡cad.想要弄个异步监测其他进程的消息.

这个不懂。。。

yaojing38 发表于 2024-11-14 09:33:20

可以的,你试下
页: [1] 2
查看完整版本: LISP 动态加载DLL