明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3230|回复: 9

救急:能把.dvb文件转化为.dll文件吗??

[复制链接]
发表于 2005-8-15 16:23:00 | 显示全部楼层 |阅读模式

我在AutoCAD中编写好了一个.dvb文件,现在有个难题要救急求教:能否把.dvb文件转化为.dll文件吗?转化后的.dll文件怎样应用到AutoCAD中呢?

急切求助!望各位老师、高手指点, 谢谢!

发表于 2005-8-15 18:59:00 | 显示全部楼层

问的好啊,我也想请教此问题

发表于 2005-8-15 22:10:00 | 显示全部楼层
问得好吗?
DVB文件是VBA程序,如果想把它转成DLL,则需要在VBA导出成文件,然后在VB中导入。而VB中创建的是控件,这样才能变成DLL。而DLL又不能直接在ACAD中使用,又需要通过VBA来调用,也就是说需要用DVB文件来调用。
发表于 2005-8-16 19:39:00 | 显示全部楼层
老大,也可以通过lisp调用dll文件,难道你忘了?
发表于 2005-8-17 15:25:00 | 显示全部楼层

mccad 老大:我在这请教你一个问题,和DLL相关的

Sub Line_Equation(ByRef LParam() As Double, ByVal p1 As Variant, ByVal p2 As Variant)
    LParam(0) = p2(1) - p1(1)
    LParam(1) = p1(0) - p2(0)
    LParam(2) = -1# * LParam(0) * p1(0) - LParam(1) * p1(1)
End Sub

上面是VB代码,我生成DLL文件,然后在VIsual Lisp 中插入

代码如下

(setq dllfile (findfile "d:\\vb\\dll\\linecircle.dll"))
(vlax-import-type-library :tlb-filename dllfile :methods-prefix "LCM-"
  :Properties-prefix "LCM-"  :constants-prefix "LCM-" )
(setq lcobj (vlax-get-or-create-object "linecircle.calculate"))

(setq arr1 (vlax-make-safearray vlax-vbvariant '(0 . 1)))
(vlax-safearray-fill arr1 '(1.0 1.0 ))
(setq arr2 (vlax-make-safearray vlax-vbvariant '(0 . 1)))
(vlax-safearray-fill arr2 '(2.0 3.0 ))
(vlax-invoke-method  lcobj  "Line_Equation"  'line1 arr1  arr2)

错误如下:

error: Automation Error. 下标越界

其它在VB中没有用到ByRef 的可正常使用

请问是什么问题啊?怎么解决?

发表于 2005-8-18 08:12:00 | 显示全部楼层
mikewolf2k发表于2005-8-16 19:39:00老大,也可以通过lisp调用dll文件,难道你忘了?


好方法,不知道稳定性如何?

这样做程序就更安全了.

发表于 2005-8-18 08:16:00 | 显示全部楼层
mccad发表于2005-8-15 22:10:00问得好吗?DVB文件是VBA程序,如果想把它转成DLL,则需要在VBA导出成文件,然后在VB中导入。而VB中创建的是控件,这样才能变成DLL。而DLL又不能直接在ACAD中...


vb 程序可以编译成Dll,并直接在VBA中引用!!!

而且在Vba中引用的方法很好,这样可以将大部分的公用程序做成固定的子程序,在不同的程序中引用.

发表于 2005-8-18 19:58:00 | 显示全部楼层
my_computer发表于2005-8-18 8:12:00
我只作过一个,效果挺好,好像没有装vba的机子也可以用,并且可以将lsp文件放在acad.lsp中,自动运行。
发表于 2005-8-18 20:32:00 | 显示全部楼层
问一个菜问题,如何把VB程序编译成DLL文件?
发表于 2009-10-23 12:05:00 | 显示全部楼层

将 VB 标准模块的函数转换成DLL

VB、VBa不但可以引用 AcrtiveX DLL(需要注册才能使用),而且可以使用API格式的DLL(不需注册,与可执行Exe,或者DVB可找到即可)。前者是近期VB开发的理念,后者则是传统的方式。API格式DLL形同一个函数集库,声明后可动态加载调用。

Vb 的编译链接机制,不允许用户获取*.obj手工链接,需要借助工具软件。

推荐一个 VB Make Dll Link 工具:请到 CSDN 网站搜索。 本月上传的。

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

本版积分规则

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

GMT+8, 2024-11-26 02:03 , Processed in 0.163717 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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