【VB.NET】dllファイルをプログラムから動的リンク(動的参照)する

VB.NET
この記事は約3分で読めます。

【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

実行してみる

クリックで拡大

 

コメント

タイトルとURLをコピーしました