VB封装DLL文件讲解---1

转载 2013年12月04日 08:23:27

一、  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)

      '判断是否为09字符,是则赋值输出

      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)

      '判断是否为09字符,是则赋值输出

       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的注册引用,在后续文章中我将就如何实现DLLACCESS应用程序对接及DLL的自动注册及引用结合实例进行讲解。

 

http://wenku.baidu.com/view/9ffb4a85b9d528ea81c779b4.html

http://wenku.baidu.com/view/9b95ddfa770bf78a652954b7.html

http://wenku.baidu.com/view/3673c529915f804d2b16c1b6.html

VB封装DLL实例(一)

正 文: 一、  DLL基本概念 (一)概念 DLL即动态链接库(Dynamic Link Library),是由可被其它程序调用的函数集合组成的可执行文件模块。DLL不是应用程序的组成部分,而是运行...
  • miaoyangzhi
  • miaoyangzhi
  • 2017年02月11日 17:30
  • 551

VB封装DLL文件讲解---3

VB中的模块,类,ActiveX与API的使用 一、模块 (Module)   在VB中,模块会优先执行,其实说白了,模块就象是全局的过程和函数调用。这是初步的提高代码可复用性的途径。...
  • yiyiyicz
  • yiyiyicz
  • 2013年12月04日 09:20
  • 3292

VB封装DLL实例(三)

正 文: 一、手动注册及引用 (一)手动注册及引用方法(参看实例:手动引用.mdb) 进入VBA编辑窗口,点菜单【工具】—【引用】,打开【引用】对话框,点【浏览】按钮,打开【添加引用】对话框,点...
  • miaoyangzhi
  • miaoyangzhi
  • 2017年02月11日 17:40
  • 605

使用VB将ASP代码封装到DLL文件完整实例

用VB封装ASP,建立SayHello测试程序1、打开VB6,新建ActiveX DLL ...
  • cncco
  • cncco
  • 2007年10月20日 21:38
  • 2329

VB封装DLL实例(二)

正 文: 上文中我们已经就DLL的基本概念,以及如何将VBA代码封装为DLL,如何引用该生成的DLL动态链接库,进行了初步的讲解,我想大家对于VB封装DLL应该有了一个初步的了解。 下面主要就DL...
  • miaoyangzhi
  • miaoyangzhi
  • 2017年02月11日 17:37
  • 955

怎样用VB编写.DLL动态链接库文件

一、名词解释:DLL 的学名叫 动态链接库二、它是干什么用的:搜索一下有很完整详细的解释。这里,我只引用过来当中的一句话“在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相...
  • zhenghui1
  • zhenghui1
  • 2010年07月13日 14:20
  • 5334

控件注册 - 利用资源文件将dll、ocx打包进exe文件(VB版)

    很多时候自定义或者引用控件都需要注册才能使用,但是如何使要注册的dll或ocx打包到exe中,使用户下载以后看到的只是一个exe,点击直接运行呢?就像很多安全控件,如支付宝的aliedit.e...
  • xrongzhen
  • xrongzhen
  • 2010年08月05日 13:29
  • 5768

如何将vbs脚本用VB封装为DLL,并在vbs脚本中调用

近来,做关于wincc的项目,用到将vbs脚本封装成DLL,并在vbs脚本里面调用,故而整理如下。 一、如何将vbs脚本封装DLL 1. 在VB6.0中新建ActiveX DLL工程。 2.命名...
  • sillyboy1104
  • sillyboy1104
  • 2015年03月24日 13:34
  • 2096

用VB生成DLL封装ASP代码一个例子:连接access数据库等

用VB生成DLL封装ASP代码一个例子:连接access数据库等 封装为dll会带来很多的好处,主要包括只是产权的保护,以及效率和安全性能的提升。这个例子中被封装的dll文件可以隐藏access数据库...
  • shaily
  • shaily
  • 2007年12月04日 19:48
  • 1602

使用VB开发封装ASP的DLL例子

      封装为dll会带来很多的好处,主要包括只是产权的保护,以及效率和安全性能的提升。这个例子中被封装的dll文件可以隐藏access数据库的实际路径。VB生成的DLL封装ASP代码来连接数据库...
  • liaojiafan
  • liaojiafan
  • 2010年09月30日 11:10
  • 2099
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB封装DLL文件讲解---1
举报原因:
原因补充:

(最多只允许输入30个字)