【VB.NET】dllファイルをプログラムから動的リンク(動的参照)する
なんのことか簡単に言うと、別のライブラリーとして固められたdllの参照のするやり方の説明です。
ちなみに動的参照というからには対称として、静的参照っていうのもあります。
参照される側
参照される(呼び出される)側を適当に作ります。
処理としては、文字列を返すだけです。
Public Class Class1
Function MySub()
Return "Hello World"
End Function
End Class
ビルドして、出来たdllを適当に置いておきます。
参照する側
参照する(呼出すが)側も適当に作ります。
コードをコピペする場合は、Cドライブの下に dll というフォルダを作ってそこに置いておいてください。
フォームを適当に作成
中身をコーディング
Assemblyというオブジェクトにdllを格納して、そこからインスタンスを生成し、メソッドを呼出してあげます。
DLLをAssemblyにロードする際は、ファイルのパスを指定するだけなので大文字小文字を区別しませんが、インスタンス作成とメソッド名は大文字小文字を区別します。そこだけ注意してください。
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'DLLをAssemblyにロードする(dllのパスを指定)
Dim asm = System.Reflection.Assembly.LoadFrom("C:\dll\ClassLibrary1.dll")
'クラスをインスタンス化(大文字小文字に注意)
Dim cla = asm.CreateInstance("ClassLibrary1.Class1")
'メソッド情報を取得(大文字小文字に注意)
Dim mysub = cla.GetType.GetMethod("MySub")
'実行
MsgBox(mysub.Invoke(cla, Nothing))
End Sub
End Class
実行してみる
コメント