找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5751|回复: 37

[已解决] Netload and run dll

[复制链接]

已领礼包: 3199个

财富等级: 富可敌国

发表于 2014-12-1 15:15:37 | 显示全部楼层 |阅读模式
悬赏20D豆已解决
本帖最后由 lucas3 于 2014-12-1 16:22 编辑

假如我有一个dll (mytest.dll) ,命令是cmdtest
  1. (defun c:test ()
  2.   (command "_netload" "C:\\Test\\mytest.dll")
  3.   (command "cmdtest")
  4. )

上面的一段代码显示没有技术含量,{:soso_e101:}
想请大师来一段高大上的代码{:soso_e113:},
这个mytest.dll 在CAD支持路径下, 具体位置不知 ,所以代码中最好不要绝对路径,代码能自动找到这个dll

搜了一段代码,放入到ACAD.lisp中自动加载
  1. ((lambda (path)
  2.    (if (wcmatch path "*\\DEBUG\\*")
  3.      (foreach f  (vl-directory-files path "*.DLL" 1)
  4.        (if
  5.    (wcmatch path
  6.       (strcat "*\\" (strcase (vl-filename-base f)) "\\*")
  7.    )
  8.     (command "_.netLoad" f)
  9.        )
  10.      )
  11.    )
  12. )
  13.   (strcase (getvar 'dwgprefix))
  14. )

最佳答案

查看完整内容

这个应该是 Net 程序调试用的,加载 dwg 文件目录的 debug 子目录下的 dll 文件
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-12-1 15:15:38 | 显示全部楼层
lucas3 发表于 2014-12-1 16:57
这段代码怎么用呢?

这个应该是 Net 程序调试用的,加载 dwg 文件目录的  debug 子目录下的 dll 文件

点评

谢谢ST大师解答 我需要这样的一个功能,大师帮帮我, 我想运行命令test ,判断mytest.dll有没有加载, 如果已经加载了,就执行命令cmdtest ,如果没有加载,就查找mytest.dll ,如果找不到就弹提示并退出,如果找  详情 回复 发表于 2014-12-1 17:29
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-12-1 15:35:04 | 显示全部楼层
  1. (if (wcmatch path
  2.                          (strcat "*\\" (strcase (vl-filename-base f)) "\\*")
  3.                 )
  4.                 (progn (prompt (strcat "\n DEBUG NETLOADING :\n" path f))
  5.                        (command "_.netLoad" f)
  6.                 )
  7.             )


另外如何 获取dll的路径 ,还是假如 mytest.dll ,  不知道在哪,运行后能获取路径C:\\Test\\mytest.dll
如果没找不到就弹提示,如果找到了 就把这个路径 给到一个变量dllpath

点评

既然在 support 下,直接 netload 即可,非要知道路径用 findfile  详情 回复 发表于 2014-12-1 15:47
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-12-1 15:47:28 | 显示全部楼层
lucas3 发表于 2014-12-1 15:35
另外如何 获取dll的路径 ,还是假如 mytest.dll ,  不知道在哪,运行后能获取路径C:\\Test\\mytest.dll ...

既然在 support 下,直接 netload 即可,非要知道路径用 findfile

点评

这个我知道啊,但是不会编程,所以....求助啊  详情 回复 发表于 2014-12-1 15:54
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-12-1 15:54:06 | 显示全部楼层
csharp 发表于 2014-12-1 15:47
既然在 support 下,直接 netload 即可,非要知道路径用 findfile

这个我知道啊,但是不会编程,所以....求助啊

点评

这个不需要编程啊! (command "netload" "mytest.dll") mytest.dll 在 support 路径即可  详情 回复 发表于 2014-12-1 16:12
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-12-1 16:12:38 | 显示全部楼层
lucas3 发表于 2014-12-1 15:54
这个我知道啊,但是不会编程,所以....求助啊

这个不需要编程啊!
(command "netload" "mytest.dll")

mytest.dll 在 support 路径即可

点评

沙发的问题怎么解决啊  详情 回复 发表于 2014-12-1 16:23
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-12-1 16:23:44 | 显示全部楼层
csharp 发表于 2014-12-1 16:12
这个不需要编程啊!
(command "netload" "mytest.dll")

沙发的问题怎么解决啊

点评

获取已加载的 dll 路径可以写个 Net 工具来获取,很简单,网上有现成代码,不在 support 下的用lisp获取不好办  详情 回复 发表于 2014-12-1 16:27
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-12-1 16:27:24 | 显示全部楼层
lucas3 发表于 2014-12-1 16:23
沙发的问题怎么解决啊

获取已加载的 dll 路径可以写个 Net 工具来获取,很简单,网上有现成代码,不在 support 下的用lisp获取不好办

点评

不是获取已加载的dll ,而是未加载的, 用findfile 不行吗? 要静待大师们解决了  详情 回复 发表于 2014-12-1 16:31
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-12-1 16:31:43 | 显示全部楼层
csharp 发表于 2014-12-1 16:27
获取已加载的 dll 路径可以写个 Net 工具来获取,很简单,网上有现成代码,不在 support 下的用lisp获取 ...

不是获取已加载的dll ,而是未加载的, 用findfile 不行吗?  要静待大师们解决了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-12-1 16:34:44 | 显示全部楼层
lucas3 发表于 2014-12-1 16:31
不是获取已加载的dll ,而是未加载的, 用findfile 不行吗?  要静待大师们解决了

只要在 support 的 findfile 就可以,在 support 下的不需要 findfile

点评

这段代码怎么用呢?  详情 回复 发表于 2014-12-1 16:57
怎么听了云里雾里?  详情 回复 发表于 2014-12-1 16:46
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-12-1 16:46:28 | 显示全部楼层
st788796 发表于 2014-12-1 16:34
只要在 support 的 findfile 就可以,在 support 下的不需要 findfile

怎么听了云里雾里?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-12-1 16:57:05 | 显示全部楼层
st788796 发表于 2014-12-1 16:34
只要在 support 的 findfile 就可以,在 support 下的不需要 findfile

  1. (if (wcmatch path
  2.                          (strcat "*\\" (strcase (vl-filename-base f)) "\\*")
  3.                 )
  4.                 (progn (prompt (strcat "\n DEBUG NETLOADING :\n" path f))
  5.                        (command "_.netLoad" f)
  6.                 )
  7.             )


这段代码怎么用呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-12-1 17:29:24 | 显示全部楼层
st788796 发表于 2014-12-1 17:04
这个应该是 Net 程序调试用的,加载 dwg 文件目录的  debug 子目录下的 dll 文件

谢谢ST大师解答
我需要这样的一个功能,大师帮帮我,
我想运行命令test ,判断mytest.dll有没有加载, 如果已经加载了,就执行命令cmdtest ,如果没有加载,就查找mytest.dll  ,如果找不到就弹提示并退出,如果找到了,就princ 这个dll文件路径,如:C:\\Test\\mytest.dll  ,然后加载,并执行命令cmdtest  


大师帮帮我! 谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-12-1 17:35:31 | 显示全部楼层
lucas3 发表于 2014-12-1 17:29
谢谢ST大师解答
我需要这样的一个功能,大师帮帮我,
我想运行命令test ,判断mytest.dll有没有加载,  ...

这个不好办,怎么知道这个是 dll 定义还是 lsp 定义,不过也可以仿照 autoload 写一个 自动加载 dll 的函数

点评

大师您的意思是判断 mytest.dll有没有加载 这一点不好办是吗?  详情 回复 发表于 2014-12-1 17:38
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-12-1 17:38:19 | 显示全部楼层
st788796 发表于 2014-12-1 17:35
这个不好办,怎么知道这个是 dll 定义还是 lsp 定义,不过也可以仿照 autoload 写一个 自动加载 dll 的函 ...

大师您的意思是判断 mytest.dll有没有加载 这一点不好办是吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-26 03:23 , Processed in 0.608398 second(s), 56 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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