VB封装DLL文件讲解---1
来源:互联网 发布:液晶通用版用编程吗 编辑:程序博客网 时间:2024/05/17 22:31
一、 DLL基本概念
(一)概念
DLL即动态链接库(Dynamic Link Library),是由可被其它程序调用的函数集合组成的可执行文件模块。DLL不是应用程序的组成部分,而是运行时链接到应用程序中。
(二)主要优点:
1、多个应用程序可以共享一个DLL,而且当多个应用程序调用库的同一个函数时,可执行文件中装入的只是该函数的内存地址,从而节省内存和磁盘空间;
2、使用动态链接库易于我们维护用户程序,即使对动态链接库进行修改也不会影响用户程序;
3、从ACCESS角度而言,还可以更好的确保核心代码的安全。
二、 用VB封装VBA代码,构建自定义的DLL动态链接库
(一)ACCESS中实例代码
下面是一个“快速提取字符串中数字.mdb”实例(该实例在文件包中),单击“提取结果”按钮,将文本框中的数字在弹出消息显示出来。
我将就这个实例演示如何将该实例VBA代码封装成为DLL。
?按钮单击事件代码如下:
Private Sub CmdFindnumber_Click()
Dim strM As String '初始字符串
Dim strOut As String '输出字符串变量
Dim I
strM = Me.Text1
'从第一个字符向最后一个字符循环,以提取每个字符
For I = 1 To Len(strM)
'判断是否为0到9字符,是则赋值输出
If Mid(strM, I, 1) Like "[0-9]" Then
strOut = strOut & Mid(strM, I, 1)
End If
Next I
'用MsgBox函数进行输出测试
MsgBox strOut
End Sub
M以上代码还不能直接用于封装,须将其修改成为公用函数(过程)
(二)VB封装实例中VBA代码
步骤一:在VB编辑窗中,点菜单【文件】-【新建工程】,打开新建工程窗口
1、点选ActiveX DLL
2、点确定
步骤二:修改工程名,这即生成的DLL库名
1、修改工程名为:我的动态库
步骤三:修改类名
1、改类名为:提取数字
步骤四:在代码窗口输入如下代码。将ACCESS中的单击事件代码,略做修改成为一个公用函数,然后复制到VB代码编辑窗口
?代码如下
'将这前的ACCESS代码改成一个公用函数
'输入:strPutString字符串变量,需分离数字的字符串
'输出:fFindNumber字符串变量,得到的数字字符
Public Function fFindNumber(strPutString As String) As String
Dim strOut As String '输出字符串变量
Dim I
'从第一个字符向最后一个字符循环,以提取每个字符
For I = 1 To Len(strPutString)
'判断是否为0到9字符,是则赋值输出
If Mid(strPutString, I, 1) Like "[0-9]" Then
strOut = strOut & Mid(strPutString, I, 1)
End If
Next I
'数字输出
fFindNumber = strOut
End Function
步骤五:编译DLL,点菜单【文件】-【生成我的动态库.dll】,VBA代码封装DLL就完成了。
三、 在mdb中调用自定义DLL动态链接库
(一)新建数据库及窗体
新【快速提取数字(DLL)实例.mdb】数据库,新建一个窗体【frmMain】,在窗体添文本框【text0】,按钮【CmdFindNum】,Caption属性:“提取数字”(见下图)
(二)引用【我的动态库.dll】库
按【Alt+F11】打开VBE窗口,点菜单【工具】-【引用】,打开引用对话框,完成对我们自己编译的DLL的引用。
2、选择引用的DLL
3、点打开
1、点浏览
4、点确定
(三)在【CmdFindNum】按钮单击事件中加入如下代码。
Private Sub CmdFindNum_Click()
'申明自定义类
Dim MyFindNum As提取数字
Dim strOut As String
'实例化"提取数字类"对象
Set MyFindNum = New提取数字
'将函数输出结果赋值给自定义字符串变量
strOut = MyFindNum.fFindNumber(Text0)
'在消息框中显示
MsgBox "你提取的数字为:" & strOut, vbInformation, "江羽提示:"
End Sub
点击保存后,你就可以运行一下窗体测试你的成果了
M本文实例见实例包,下载测试如果提示错误,请重新对自定义类库进行引用。
本文只是通过一个简单的实例演示了,如何通过VB封装一般的VBA中代码,因为该代码中并未涉及到ACCESS应用程序对象,所以在VB中没有对ACCESS对象类库进行引用,另外实例中只是简单演示了,如何手动实现对DLL的注册引用,在后续文章中我将就如何实现DLL与ACCESS应用程序对接及DLL的自动注册及引用结合实例进行讲解。
http://wenku.baidu.com/view/9ffb4a85b9d528ea81c779b4.html
http://wenku.baidu.com/view/9b95ddfa770bf78a652954b7.html
http://wenku.baidu.com/view/3673c529915f804d2b16c1b6.html
- VB封装DLL文件讲解---1
- VB封装DLL文件讲解---2
- VB封装DLL文件讲解---3
- 使用VB将ASP代码封装生成DLL文件
- 用VB来封装DLL加密ASP文件
- 使用VB将ASP代码封装生成DLL文件
- VB封装DLL实例(一)
- VB封装DLL实例(二)
- VB封装DLL实例(三)
- VB封装DLL并调用
- 使用VB将ASP代码封装到DLL文件完整实例
- 使用VB将ASP代码封装到DLL文件完整实例
- 用VB把asp封装成dll
- VB封装Excel_VBA代码为Dll
- vb调用vc++dll文件
- VB自动注册DLL文件
- .dll文件讲解,及其调用
- VB-文件未找到 'C:/WINDOWS/system32/IEFRAME.dll/1'
- keika
- socket穿透代理代码(C++版)
- 丙子 胡 亂
- ENGLISH资料收集(38)-理发英语
- 易經大意(24) 三和 韓長庚 著
- VB封装DLL文件讲解---1
- 易經大意(23) 三和 韓長庚 著
- Bootstrap-网格布局系统
- 三和 韓長庚 先生 遺迹 1830年代
- Linux PS命令详解
- cocos2d-x 植物大战僵尸(4) 帽子僵尸的产生
- 30天自制操作系统笔记(十三十四)
- strtol的用法
- linux so 文件创建