详解VB.net编写DLL(动态链接库、应用程序扩展)文件
首先,我们启动VS(Visual-Studio简称),我使用的是VS2008版本。
新建一个项目-选择内裤(额...不好意思)→类库 ,名称就默认吧.
编写类库没有窗体设计,因此我们不能使用工具箱中的控件..
类库支持Function函数,Sub过程等等....
·我们写个获取程序MD5(我有过一篇曾介绍过http://hi.baidu.com/lipeiyi2006/blog/item/6e63fb1c279ef18086d6b607.html)的Function函数
完整代码如下:
Imports System.IO
Imports System.Security.Cryptography
Public Class Class1
Public Function MD5(ByVal Path As String) As String
Dim fstream As New FileStream(Path, _
FileMode.Open, _
FileAccess.Read)
Dim dataToHash(fstream.Length - 1) As Byte
fstream.Read(dataToHash, 0, fstream.Length)
fstream.Close()
Dim hashvalue As Byte() = CType(CryptoConfig.CreateFromName("MD5"), HashAlgorithm).ComputeHash(dataToHash)
Dim i As Integer
Dim result As String = ""
For i = 0 To hashvalue.Length - 1
result += Hex(hashvalue(i)).ToLower
Next
Return result
End Function '返回MD5值
End Class
PS:如果复制的格式不正确请自行修改。
我们保存之后,选择 “生成-生成ClassLibrary1"
在对应的保存目录下找到"ClassLibrary1.dll",这就是你已经写好的DLL了.
将其复制到Windows目录下,为了避免找不到文件。
在次新建一个工程,选择"Windows窗体应用程序"
如图。
点击菜单中的 "项目-添加引用-浏览"找到你的ClassLibrary1.dll
你可以在"对象浏览器"中查看DLL函数
在Button1的Click事件中写入代码.
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myDll As New ClassLibrary1.Class1'注意要使用New关键字实例化
Dim FilePath As String = ""
FilePath = InputBox("请输入要获取MD5文件地址", "")
MsgBox(myDll.MD5(FilePath))
End Sub
End Class
运行程序,效果如下:
好了,很简单吧!
在程序中应用DLL出来上述方法外还可以使用Declare语句引用..
你可以写其它函数包装在一个DLL中共同分享吧!
详解VB.net编写DLL(动态链接库、应用程序扩展)文件的更多相关文章
- C++编写DLL动态链接库的步骤与实现方法
原文:http://www.jb51.net/article/90111.htm 本文实例讲述了C++编写DLL动态链接库的步骤与实现方法.分享给大家供大家参考,具体如下: 在写C++程序时,时常需要 ...
- nand flash详解及驱动编写
https://www.crifan.com/files/doc/docbook/linux_nand_driver/release/html/linux_nand_driver.html#nand_ ...
- Delphi 编写DLL动态链接库文件的知识
一.DLL动态链接库文件的知识简介: Windows的发展要求允许同时运行的几个程序共享一组函数的单一拷贝.动态链接库就是在这种情况下出现的.动态链接库不用重复编译或链接,一旦装入内存,Dlls函数可 ...
- Delphi 编写DLL动态链接库文件的知识和样例(有详细步骤,很清楚)
一.DLL动态链接库文件的知识简介: Windows的发展要求允许同时运行的几个程序共享一组函数的单一拷贝.动态链接库就是在这种情况下出现的.动态链接库不用重复编译或链接,一旦装入内存,Dlls函数可 ...
- Linux dts 设备树详解(二) 动手编写设备树dts
Linux dts 设备树详解(一) 基础知识 Linux dts 设备树详解(二) 动手编写设备树dts 文章目录 前言 硬件结构 设备树dts文件 前言 在简单了解概念之后,我们可以开始尝试写一个 ...
- linux dd命令参数及用法详解---用指定大小的块拷贝一个文件(也可整盘备份)
linux dd命令参数及用法详解---用指定大小的块拷贝一个文件 日期:2010-06-14 点击:3830 来源: 未知 分享至: linux dd命令使用详解 dd 的主要 ...
- [转帖]XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件
XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件 https://www.cnblogs.com/smartsmile/p/7665979.html xcopy dirA dir ...
- lib静态链接库,dll动态链接库,h文件
最近在弄摄像头,发现我在调用摄像头自带的函数的时候,库没连接上,于是经过高人指点,学习了一下lib静态链接库,dll动态链接库来补充一下自己的基础知识. 一.首先我们来介绍一下lib静态链接库. li ...
- 怎样用VB编写.DLL动态链接库文件
VB一般可以生成两种特殊的DLL,一个是ActiveX DLL和ActiveX Control(*.ocx).这两种DLL都是VB支持的标准类型,在VB自身的例子中有,你可以参考.更详细的介绍可以参考 ...
随机推荐
- js 跨域访问
错误log : XMLHttpRequest cannot load http://192.168.17.131:8080/wm/topology/links/json. No 'Access-Co ...
- the first has precedence, perhaps you need a NameVirtualHost directive
报错信息1: Starting httpd: [Fri May 19 11:49:42 2011] [warn] VirtualHost 127.0.0.1:80 overl aps with Vir ...
- WCF学习心得
之前很经常听说WCF,不过没有怎么接触过,直到最近才真正使用到WCF,虽然也只是皮毛而已,在此也做个记录总结吧. 下图是我使用WCF的练手项目,由于是使用VS2010直接创建的WCF服务应用程序,VS ...
- T-SQL存储过程
存储过程(procedure)就是一个函数,完成一段sql代码的封装,实现代码的重用. 优点: 1.比使用DotNet直接写Sql脚本执行少了一块解析编译的过程.效率更快一点点. ...
- HTTP请求的基本概念 HTTP请求头和响应头的含义
1,HTTP请求的基本概念 TCP/UPD/HTTP *2,HTTP请求头和响应头的含义 请求头: Accept: text/html,image/*(浏览器可以接收的类型) Acc ...
- python学习笔记:python对象
一.python对象 python使用对象模型来存储数据,构造任何类型的值都是一个对象.所有的python对象都拥有三个特性:身份.类型和值. 身份:每个对象都有一个唯一的身份标识自己,对象的身份可以 ...
- Android.Hack.02_Animations
#01# TextView 和 ImageView TextView和Imageview切换卡顿,为了实现更好的切换,可以用动画来实现,系统自带的TextViewSwitcher 和ImageView ...
- JavaScript基本概念(对象)
1.对象的分类 内置对象:由ECMAScript规范定义的对象或类 宿主对线:由浏览器定义的对象 自定义对象:由运行中的Javascript代码创建的对象 2.属性的分类 自有属性:直接在对象中定义的 ...
- Kaggle入门
Kaggle入门 1:竞赛 我们将学习如何为Kaggle竞赛生成一个提交答案(submisson).Kaggle是一个你通过完成算法和全世界机器学习从业者进行竞赛的网站.如果你的算法精度是给出数据集中 ...
- jQuery事件对象的属性
注:摘自<锋利的jQuery(第二版)> JQuery在遵循W3C规范的情况下,对事件对象的常用属性进行了封装,使得事件处理在各大浏览器下都可以正常运行而不需要进行浏览器类型判断. 1. ...