乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 42|回复: 2

自编的dll文件怎样调用?

[复制链接]

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 2003-12-15 21:05:00 | 显示全部楼层 |阅读模式
1. 启动Visual Basic 5 or 6;
2. 在New Project Wizard中选择ActiveX DLL;
3. 把工程名改为"MyProject";
4. 在工程中有一个缺省的类模块,把它的名称改为"MyClass";
5. 添加一个函数或者子例程到类模块中。例如:
' This function takes two arguments, and will return a list of data to the calling function
Public Function MyFn(ByRef arg1 as Integer, ByRef arg2 as Double) As Variant
  myForm.Show vbModal
  ' Create a list of items to return to the caller (the items are in this case purely arbitrary)
  MyFn = Array(1.0,"Arbitrary string",2)
End Function
(这里,myForm是一个你必须添加到工程中的表格。同时切记MyFn是一个函数,它将返回一个值或者一组值给调用例程。)
6. 点取File -
Make MyProject.dll。这就会生成一个DLL并且把它注册为COM。(如果你想在其他机器上运行此DLL,你需要首先确认在所有的机器上安装并注册了这个DLL。这通常需要你用Visual Basic生成一个安装包。)
7. 如果你想从Visual LISP中使用此DLL,你需要定义一个简单的函数,并且把他加载到中:
(defun showDialog (/ acadApp vbApp retVal retList)
;; required in AutoCAD 2000, not R14
(if (car (atoms-family 1 '("vl-load-com"))) (vl-load-com))
;; get the main AutoCAD application object
(setq acadApp (vlax-get-acad-object))
;; load VB ActiveX DLL into AutoCAD's address space (either line will work)
;;(setq vbApp (vlax-invoke acadApp "GetInterfaceObject" "MyProject.MyClass")
(setq vbApp (vla-GetInterfaceObject acadApp "MyProject.MyClass"))
(if (not vbApp)
   (princ "\nError loading ActiveX DLL.")
   (vlax-invoke vbApp "MyFn"
                       7        ; arg1, an integer
                       1.5      ; arg2, a 'double'
   )
)
)
以上是用vb5编的dll文件,其中有些部分看不懂,请赐教:
1 "如果你想在其他机器上运行此DLL,你需要首先确认在所有的机器上安装并注册了这个DLL。这通常需要你用Visual Basic生成一个安装包。"是什么意思,具体怎样做?
2 这个dll怎样用visual lisp调用,命令是什么?我照上面所说的编了一个lisp文件,在cad2000中也加载了,但是不知怎样激活它.请哪位高手根据dll源文件告知如何用lisp文件调用,最好是源程序(我对lisp一窍不通).
回复

使用道具 举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2003-12-16 11:57:00 | 显示全部楼层
第1个问题是关于组件的注册,组件必须注册之后才能使用,所以直接拷贝的就不能使用。有两种方式,1、做成安装包,安装程序会自动注册它。手工注册使用Regsvr32。
第2个问题是VL调用DLL的问题,应该使用vlax-create-object创建组件的实例,才能使用它的功能。
回复

使用道具 举报

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 2003-12-16 18:00:00 | 显示全部楼层
能不能在详细点,第一步,第二步.....
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-29 17:04 , Processed in 1.741729 second(s), 69 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表