十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
DLL(动态链接库)是一个很有用的东西,在开发大项目的时候显得非常重要,因为多人合作开发时,可以给每个人分配一个任务,用DLL完成,最后组合起来,就不会出现互相冲突的问题。这里给出最简单的DLL编写与调用的示例
专注于为中小企业提供做网站、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业长葛免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
首先,我们打开VB.NET,选择类库,名称改为test
然后输入以下代码
Public Class test
Public Function test(ByVal a As Long, ByVal b As Long) As Long
Return a + b
End Function
End Class
保存后,生成DLL文件。
这就是最简单的一个DLL,下面是调用该DLL的示例
新建一个工程,单击“项目” -- 添加引用
找到刚才生成的DLL,双击它
添加引用以后,似乎什么也没发生,这时我们输入以下代码:
Imports test.test
这样,就包含了该DLL的类。
然后我们定义一个类
Dim test As New test.test
这样,就可以使用里面的函数了,下面是程序示例
Imports test.test
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim test As New test.test
MsgBox(test.test(1, 2))
End Sub
End Class
运行该程序,可以看到,调用了DLL内的函数。
这就是最简单的DLL示例,可以将一些复杂的代码集成到DLL里,以后升级或重用都比较方便。
如上面所说,你可能还不太了解类、函数等的作用。
类可以用来封装一系列操作,或者是一类对象的特性。像上面的描述,有可能是滥用类了。
建议你这样,弄一个专门的运算类,里面有四个运算的函数,比如:
Class 运算
Shared Function 加(ByVal 加数1 As Decimal, ByVal 加数2 As Decimal) As Decimal
'举个例子
Return 加数1 + 加数2 '百度打不出英文加号,你自己改一下
Exit Function
End Function
Shared Function 减(ByVal 被减数 As Decimal, ByVal 减数 As Decimal) As Decimal
'举个例子
Return 被减数 - 减数
Exit Function
End Function
End Class
上面我写了两个例子,你可以照抄然后自己写乘除的,总之不要滥用类就行。
PS:Shared函数的使用不需要类被实例化,可以直接这样使用:
Msgbox(运算.加(1,2).ToString)
你会发现“运算”是蓝色的
1. Shared Function System.Runtime.
InteropServices.DLLimport("user32.dll")
2. MessageBoxA(ByVal hwnd As Integer,
ByVal text As String, ByVal
lpcaption As String, ByVal
wtype As Integer) As Integer
3. End Function
首先integer被作为32位数据替代了long(long是64位)
System是Net语言中的一个族,System.Runtime.InteropServices是system中的一个类。System.Runtime.InteropServices.DLLimpor是其中的一个方法。调用DLL的API
接口,这个的意思就是vb6的lib"user32", share是共享的意思,例如:
1. Public Class classA
2. Shared Function System.Runtime.
InteropServices.DLLimport("user32.dll")
MessageBoxA(ByVal h As Integer,
ByVal m As String, ByVal c As
String, ByVal type As Integer) As Integer
3. End Function
4. End Class
你可以这样调用 classA.MessageboxA 但是如果没有这个share 在class后打点就没有MessageboxA的成员出现了 ,现在你就象以前一样的使用他吧。
其实上面这个VB.NET函数调用方法并不正确,我们仍旧要使用API声明,只是换了一各形式
如果你认为这就是VB.NET就错了,看看这个:
system.WinForms.MessageBox.Show("对话内容写在这里", "标题写在这里", messagebox.OK BitOr messagebox.IconAsterisk)
这就是面向对象,你已经完成了所有的任务。不需要任何的API声明。不需要写多余的代码。
1. messagebox.IconAsterisk=惊叹号图标
2. messagebox.IconError=错误图标
3. messagebox.IconExclamation=警告图标
4. messagebox.IconHand=错误图标
5. messagebox.IconInformation=提示图标
所经点NET就是打点到达,在族后面打点,在类后面打点,在对象后面打点。第二个问题就是类与类之间相互的关系,Net在网上处理人与人的关系,在程序语言中处理类与类的关系。倒底是加不加share,倒底是类后面打点,还是Dim成一个对象(把他当一个变量吧)再说,是等于class,还是New class.是dim xxx as class=new class 还是dim xxx as new class
就是这样VB.NET函数调用将更简单,不须要研究一些很难的东西。