Netload and run dll
本帖最后由 lucas3 于 2014-12-1 16:22 编辑假如我有一个dll (mytest.dll) ,命令是cmdtest
(defun c:test ()
(command "_netload" "C:\\Test\\mytest.dll")
(command "cmdtest")
)
上面的一段代码显示没有技术含量,{:soso_e101:}
想请大师来一段高大上的代码{:soso_e113:},
这个mytest.dll 在CAD支持路径下, 具体位置不知 ,所以代码中最好不要绝对路径,代码能自动找到这个dll
搜了一段代码,放入到ACAD.lisp中自动加载
((lambda (path)
(if (wcmatch path "*\\DEBUG\\*")
(foreach f(vl-directory-files path "*.DLL" 1)
(if
(wcmatch path
(strcat "*\\" (strcase (vl-filename-base f)) "\\*")
)
(command "_.netLoad" f)
)
)
)
)
(strcase (getvar 'dwgprefix))
)
lucas3 发表于 2014-12-1 16:57
这段代码怎么用呢?
这个应该是 Net 程序调试用的,加载 dwg 文件目录的debug 子目录下的 dll 文件 (if (wcmatch path
(strcat "*\\" (strcase (vl-filename-base f)) "\\*")
)
(progn (prompt (strcat "\n DEBUG NETLOADING :\n" path f))
(command "_.netLoad" f)
)
)
另外如何 获取dll的路径 ,还是假如 mytest.dll ,不知道在哪,运行后能获取路径C:\\Test\\mytest.dll
如果没找不到就弹提示,如果找到了 就把这个路径 给到一个变量dllpath lucas3 发表于 2014-12-1 15:35
另外如何 获取dll的路径 ,还是假如 mytest.dll ,不知道在哪,运行后能获取路径C:\\Test\\mytest.dll ...
既然在 support 下,直接 netload 即可,非要知道路径用 findfile
csharp 发表于 2014-12-1 15:47
既然在 support 下,直接 netload 即可,非要知道路径用 findfile
这个我知道啊,但是不会编程,所以....求助啊
lucas3 发表于 2014-12-1 15:54
这个我知道啊,但是不会编程,所以....求助啊
这个不需要编程啊!
(command "netload" "mytest.dll")
mytest.dll 在 support 路径即可
csharp 发表于 2014-12-1 16:12
这个不需要编程啊!
(command "netload" "mytest.dll")
沙发的问题怎么解决啊
lucas3 发表于 2014-12-1 16:23
沙发的问题怎么解决啊
获取已加载的 dll 路径可以写个 Net 工具来获取,很简单,网上有现成代码,不在 support 下的用lisp获取不好办 csharp 发表于 2014-12-1 16:27
获取已加载的 dll 路径可以写个 Net 工具来获取,很简单,网上有现成代码,不在 support 下的用lisp获取 ...
不是获取已加载的dll ,而是未加载的, 用findfile 不行吗?要静待大师们解决了
lucas3 发表于 2014-12-1 16:31
不是获取已加载的dll ,而是未加载的, 用findfile 不行吗?要静待大师们解决了
只要在 support 的 findfile 就可以,在 support 下的不需要 findfile
st788796 发表于 2014-12-1 16:34
只要在 support 的 findfile 就可以,在 support 下的不需要 findfile
怎么听了云里雾里?
st788796 发表于 2014-12-1 16:34
只要在 support 的 findfile 就可以,在 support 下的不需要 findfile
(if (wcmatch path
(strcat "*\\" (strcase (vl-filename-base f)) "\\*")
)
(progn (prompt (strcat "\n DEBUG NETLOADING :\n" path f))
(command "_.netLoad" f)
)
)
这段代码怎么用呢?
st788796 发表于 2014-12-1 17:04
这个应该是 Net 程序调试用的,加载 dwg 文件目录的debug 子目录下的 dll 文件
谢谢ST大师解答
我需要这样的一个功能,大师帮帮我,
我想运行命令test ,判断mytest.dll有没有加载, 如果已经加载了,就执行命令cmdtest ,如果没有加载,就查找mytest.dll,如果找不到就弹提示并退出,如果找到了,就princ 这个dll文件路径,如:C:\\Test\\mytest.dll,然后加载,并执行命令cmdtest
大师帮帮我! 谢谢!
lucas3 发表于 2014-12-1 17:29
谢谢ST大师解答
我需要这样的一个功能,大师帮帮我,
我想运行命令test ,判断mytest.dll有没有加载,...
这个不好办,怎么知道这个是 dll 定义还是 lsp 定义,不过也可以仿照 autoload 写一个 自动加载 dll 的函数
st788796 发表于 2014-12-1 17:35
这个不好办,怎么知道这个是 dll 定义还是 lsp 定义,不过也可以仿照 autoload 写一个 自动加载 dll 的函 ...
大师您的意思是判断 mytest.dll有没有加载 这一点不好办是吗?