weekendor 发表于 2005-8-15 16:23:00

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

我在中编写好了一个.dvb文件,现在有个难题要救急求教:能否把.dvb文件转化为.dll文件吗?转化后的.dll文件怎样应用到AutoCAD中呢?
急切求助!望各位老师、高手指点, 谢谢!

mycad 发表于 2005-8-15 18:59:00

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

mccad 发表于 2005-8-15 22:10:00

问得好吗?
DVB文件是VBA程序,如果想把它转成DLL,则需要在VBA导出成文件,然后在VB中导入。而VB中创建的是控件,这样才能变成DLL。而DLL又不能直接在ACAD中使用,又需要通过VBA来调用,也就是说需要用DVB文件来调用。

mikewolf2k 发表于 2005-8-16 19:39:00

老大,也可以通过lisp调用dll文件,难道你忘了?

sieben 发表于 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-"
roperties-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-methodlcobj"Line_Equation"'line1 arr1arr2)
错误如下:
error: Automation Error. 下标越界
其它在VB中没有用到ByRef 的可正常使用
请问是什么问题啊?怎么解决?

my_computer 发表于 2005-8-18 08:12:00


好方法,不知道稳定性如何?
这样做程序就更安全了.

my_computer 发表于 2005-8-18 08:16:00


vb 程序可以编译成Dll,并直接在VBA中引用!!!
而且在Vba中引用的方法很好,这样可以将大部分的公用程序做成固定的子程序,在不同的程序中引用.

neteasy 发表于 2005-8-18 20:32:00

问一个菜问题,如何把VB程序编译成DLL文件?

dsq2006 发表于 2009-10-23 12:05:00

VB、VBa不但可以引用 AcrtiveX DLL(需要注册才能使用),而且可以使用API格式的DLL(不需注册,与可执行Exe,或者DVB可找到即可)。前者是近期VB开发的理念,后者则是传统的方式。API格式DLL形同一个函数集库,声明后可动态加载调用。
Vb 的编译链接机制,不允许用户获取*.obj手工链接,需要借助工具软件。
推荐一个 VB Make Dll Link 工具:请到 CSDN 网站搜索。 本月上传的。
页: [1]
查看完整版本: 救急:能把.dvb文件转化为.dll文件吗??