我が家におけるDLL作成ルール
ここでは、 VB.NETでDLLを作成し、 そのDLLを呼び出して使用する手順を解説する。
「作成」して「呼び出す」ことが最大の目的であるため、 それぞれのソースは必要最小限にして、 目的から外れた余分な記述は一切省いてある。
記事の構成は、
である。
1-1 【「Visual Studio 2019」を起動する。】
「Visual Studio 2019」は2件登録されているが、アイコンが
の方をクリックする。
1-2 【Visual Studio 2019】画面
「Visual Studio 2019」のスタート画面が表示される。
右側一番下の「新しいプロジェクトの作成(N)」をクリックする。
1-3【新しいプロジェクトの作成】画面(候補の絞り込み)
「新しいプロジェクトの作成」画面が表示される。
ここで、下の一覧表に表示される候補を絞り込む。
左の画像のように、言語は「Visual Basic」を選択する。
続いて、プラットフォームは「Windows」、プロジェクトの種類は「ライブラリ」を選択する。
この操作は必須ではないが、下に表示される一覧の量が少なくなるので探しやすくなる。
1-4【新しいプロジェクトの作成】画面
上記の操作により、候補は10件以下になり、選択しやすくなった。
Visual Basic(VB)の「クラス ライブラリ(.NET Standard)」をクリックして選択し、「次へ(N)」をクリックする。
候補を絞り込んでいるので間違えることは無いと思うが、画像内の青色の部分をもう一度確認しよう。
1-5 【新しいプロジェクトを構成します】画面
各種情報を入力する。
プロジェクト名とソリューション名はわざわざ異なった名称にする必要はなさそうだが、
この後の作業で、
入力した名称と出てきた結果の対比を取りやすいようにそれぞれ異なった名称を入力することとする。
この手法は後の処理でも同様で、すべて異なった名称を指定している。
入力完了後は、「作成(C)」をクリックする。
1-6 【VBのエディター】画面
「作成(C)」をクリックすると、
このような空のVBソース画面が表示される。
「作成(C)」がクリックされたのちに、
「\Source」内に「プロジェクト名」で指定した名称のディレクトリを作成し、
その中にソリューションファイルなどを作成した後、
ソリューションファイルが自動的に起動されてこのような画面が表示されたものである。
赤枠の「Class1.vb」の名称は他と重複しないので変更はしない。
「場所(L)」で指定した「|Project\Source」のディレクトリ構成はこの様になる。
1-8 【プロジェクトのプロパティを設定】
「プロジェクトのプロパティ」を開いて、
「アプリケーション」と「コンパイル」を設定する。
ここでも、名称に関してはあえて異なる名称に変更した。
併せて、これまでに設定した各種の名称もここにまとめておく。
2-1 【「Visual Studio 2019」を起動する。】
DLLは他のプログラムから呼び出されて初めて機能を発揮するものである。
ここでは、
登録したDLLを呼び出すための手順を解説する。
簡単なフォーム アプリケーションを作成してDLLを呼び出すことにする。
「Visual Studio 2019」は2件登録されているが、
アイコンが
の方をクリックする。
2-2 【Visual Studio 2019】画面
「Visual Studio 2019」のスタート画面が表示される。
右側一番下の「新しいプロジェクトの作成(N)」をクリックする。
2-3【新しいプロジェクトの作成】画面(候補の絞り込み)
「新しいプロジェクトの作成」画面が表示される。
ここで、下の一覧表に表示される候補を絞り込む。
左の画像のように、言語は「Visual Basic」を選択する。
続いて、プラットフォームは「Windows」、プロジェクトの種類は「ライブラリ」を選択する。
この操作は必須ではないが、下に表示される一覧の量が少なくなるので探しやすくなる。
2-4【新しいプロジェクトの作成】画面
「Windows フォーム アプリケーション (.NET Framework)」をクリックして選択し、「次へ(N)」をクリックする。
2-5【新しいプロジェクトを構成します】画面
「プロジェクト名(N)」と「ソリューション名(M)」は「DllTestMain」としておく。
「場所(L)」(VBソースの保管場所)を指定する。(「\Project」は説明の都合上の場所。「参照」をクリックしてフルパスで指定する)
「ソリューションとプロジェクトを同じディレクトリに配置する(D)」はチェックしない。(チェックしても良いが今回はしない)
「作成(C)」をクリックする。
2-6【VBのエディター】画面
「場所(L)」で指定したディレクトリ「\Project」内に、
「ソリューション名(M)」で指定したソリューション名(DllTestMain)のディレクトリが作成され、
その中に保存されたソリューションファイルが自動的に起動し、
この画面が表示される。
このままでは、このプログラムでDLLを見ることができない。
先ず、このプログラムでDLLを見ること(参照すること)ができるようにする。
左の「ソリューション・エクスプローラー・ウィンドウ」内の、
プロジェクト名の左にある三角形をクリックして、このように展開し、
「参照」を右クリックして「参照の追加(R)」を選択する。
2-7「参照マネージャー」画面
「参照マネージャー」画面が表示される。
「参照」をクリックし、
「1-9【VBをReleaseでビルドする】」 で作成した「UlibProjectNameAsm.dll」をクリックして選択する。
2-8「参照マネージャー」画面(取り込み後)
このように「ClassLibrary1.dll」が取り込まれた。
「OK」をクリックする。
2-9【ソリューション エクスプローラー】画面で確認
左の画像は【VBのエディター】画面の内、「ソリューション エクスプローラー」部分だけを取り出したものである。
念の為「ソリューション エクスプローラー」の「参照」の左の三角形をクリックして展開すると、
このように「UlibProjectNameAsm.dll」が追加されている。
これで、このプログラム「DllTestMain」から自作のDLLを呼び出すための準備が完了した。
2-10「Shown」イベントの作成
Public Class Form1
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
' TestDLLの呼び出し。その1
Dim obj As New UlibProjectNameSpace.PublicClass()
MessageBox.Show(obj.TestDLL())
' TestDLLの呼び出し。その2
MessageBox.Show((New UlibProjectNameSpace.PublicClass()).TestDLL())
Me.Close()
End Sub
End Class
ここでは、自作DLL(TestDLL)を2回呼び出している。
このDLLは「1-7【VBコードの入力】」でコードを入力したとおり「TestDll Called」の文字列を返すだけなので、
「TestDll Called」の文字を2回表示する。
2回呼び出しているのは、呼び出し方法が異なっているからである。