怎样用 VB 编写.DLL 动态链接库文件
一、名词解释:
DLL 的学名叫 动态链接库
二、它是干什么用的:
搜索一下有很完整详细的解释。这里,我只引用过来当中的一句话
“在 Windows 中,许多应用程序并不是一个完整的可执行文件,它们被分割成一
些相对独立的动态链接库,即 DLL 文件,放置于系统中。当我们执行某一个程
序时,相应的 DLL 文件就会被调用。”
三、制作自己的 dll:
使用 dll 的意义
(以下来自 MSDN)
节省内存和减少交换操作。很多进程可以同时使用一个 DLL,在内存中共享该
DLL 的一个副本。相反,对于每个用静态链接库生成的应用程序,Windows 必
须在内存中加载库代码的一个副本。
节省磁盘空间。许多应用程序可在磁盘上共享 DLL 的一个副本。相反,每个用
静态链接库生成的应用程序均具有作为单独的副本链接到其可执行图像中的库
代码。
升级到 DLL 更为容易。当 DLL 中的函数发生更改时,只要函数的参数和返回
值没有更改,就不需重新编译或重新链接使用它们的应用程序。相反,静态链接
的对象代码要求在函数更改时重新链接应用程序。
提供售后支持。例如,可修改显示器驱动程序 DLL 以支持当初交付应用程序时
不可用的显示器。
支持多语言程序。只要程序遵循函数的调用约定,用不同编程语言编写的程序就
可以调用相同的 DLL 函数。程序与 DLL 函数在下列方面必须是兼容的:函数
期望其参数被推送到堆栈上的顺序,是函数还是应用程序负责清理堆栈,以及寄
存器中是否传递了任何参数。
提供了扩展 MFC 库类的机制。可以从现有 MFC 类派生类,并将它们放到
MFC 扩展 DLL 中供 MFC 应用程序使用。
使国际版本的创建轻松完成。通过将资源放到 DLL 中,创建应用程序的国际版
本变得容易得多。可将用于应用程序的每个语言版本的字符串放到单独的 DLL
资源文件中,并使不同的语言版本加载合适的资源。
特别指出一点,对于 excel 来说,dll 还有一个重要的意义,代码的安全性基本得
到了保障。都说破解 vba 密码是一秒钟的事儿,破解 dll 可不是那么容易的事儿
了。
四、自己制作 dll
我们用 VB6.0 制作 dll
1、(本帖里)图 1 就是 vb6.0 在桌面的图标,双击它
2、弹出窗口后,先选择 ActiveX DLL(图 2 的红框),再点击打开(图 2 的蓝
框)
3、起个名字(图 3 蓝色框内文字改为 ABC)
4、先保存一下,桌面新建个文件夹,点击图 3 红框里的保存标志,弹出另存为
对话框,选择桌面》双击刚刚建立的那个文件夹(图 4 蓝色框)》保存(图 4 红色框)》
保存
5、写代码,模块里输入下面代码
Sub def()
Dim EL As Object
Set EL = GetObject(, "Excel.Application")
With EL.ActiveSheet
.Cells(1, 3) = .Cells(1, 1) & .Cells(1, 2)
End With
Set EL = Nothing
End Sub
(如图 5 所示)
6、点击文件(图 5 红色框),在出现的下拉菜单中点击 生成工程 1.dll(k)...》(默认
保存位置)点击确定
至此,Dll 就制作完成了
四、使用 dll
1、新建一个 excel,A1 单元格输入"你",B1 单元格输入"好"
2、打开 VBE,工具》引用》浏览》找到刚刚创建的文件夹 点击工程 1.dll(图 6)》
点击打开》点击确定
3、插入一个模块,输入下面代码
Sub test()
Dim a As New ABC
a.def
Set a = Nothing
End Sub
4、运行一下代码,C1 单元格出现"你好"
至此,一个由制作到使用 dll 的简单示例全部完成