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)
)
。。
nuan1989 发表于 2024-5-12 12:43
你知道有没有法子让autolisp异步调用不, 类似线程调用. 不卡cad.想要弄个异步监测其他进程的消息.
lisp是面向过程的,不是面向对象的,所以,多线程支持是木有的。唯一的可能是后台再开一个隐藏的CAD运行另外的线程,效率上很差 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文件 能给新人讲细点怎么用吗谢谢。 这是那个NetLoadX.dll么,写一个lisp先加这个dll,然后再从这个netloadx中加载自己的dll就不会文件占用了。 Bao_lai 发表于 2023-12-26 20:19
这是那个NetLoadX.dll么,写一个lisp先加这个dll,然后再从这个netloadx中加载自己的dll就不会文件占用了。
是的,,只是改成用lisp获取地址 但是怎么调用dll里面方法呢 nuan1989 发表于 2024-5-10 20:58
但是怎么调用dll里面方法呢
?一个是要调试DLL地址,一个是动态加载的DLL文件的地址 yaojing38 发表于 2024-5-11 09:34
?一个是要调试DLL地址,一个是动态加载的DLL文件的地址
你知道有没有法子让autolisp异步调用不, 类似线程调用. 不卡cad.想要弄个异步监测其他进程的消息. nuan1989 发表于 2024-5-12 12:43
你知道有没有法子让autolisp异步调用不, 类似线程调用. 不卡cad.想要弄个异步监测其他进程的消息.
这个不懂。。。 可以的,你试下
页:
[1]
2