VB.NET 动态加载DLL
在刚开始用VB.NET的时候,就好奇动态加载DLL,像插件那样,可以选择性下载和使用,但奈何当时极度菜鸟,便放在一边。现在接触VB.NET也有一段时间了,我想应该差不多做做这个了。
OK~首先谷歌,找到了一段不错的代码和解释文章,动手实操。
先写那个DLL的代码
Imports System Imports System.Windows.Forms Public Class Test Public Function Add(ByVal add1 As Integer, ByVal add2 As Integer) As Integer Return add1 + add2 End Function Sub New() MessageBox.Show("初始化") End Sub End Class
编译,把DLL复制出来(DLL的名字是ClassTest.dll)
接着写窗体程序
Public Function Add(ByVal add1 As Integer, ByVal add2 As Integer) As Integer Dim asm As System.Reflection.Assembly = System.Reflection.Assembly.LoadFile(Application.StartupPath & "ClassTest.dll") Dim classtemp As Type = asm.GetType("ClassTest.Test") Dim obj As Object = asm.CreateInstance(classtemp.FullName) Return CallByName(obj, "Add", vbMethod, add1, add2) '这里特别注意CallByName的用法 End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MessageBox.Show(Add(1, 1)) End Sub
LoadFile:参数是DLL的路径,最好用绝对路径。
asm.GetType:参数是“DLL文件名.類名”,文件名不能帶有後綴
记住,事例代码的双引号里的内容都是可变的,剩下的自己调试