中堅プログラマーの備忘録

忘れっぽくなってきたので備忘録として・・・

【C#.net】Visual StudioでDLLを作成して使う

1.概要

WindowsアプリケーションプログラミングにおいてDLLは切っても切り離せない関係性です。
意識しなくても、知らず知らずのうちにDLLを使っている場合もあるでしょう。

今回は自分でDLLを作成し、それを実装したプログラミングをやってみようと思います。

なにかと敬遠しがちですが、やってみると非常に簡単です。

今回使用するのは【Visual Studio 2015】になります。


2.DLLとは

ダイナミック・リンク・ライブラリの略で
動的に関連付けられた部品という意味合いになります。

つまり

プログラムが動作する時に読み込まれるファイル

という解釈になるかと思います。


この動作する時に読み込まれるというのが重要で
静的なものは【プログラム作成時】に必要となるので
バイナリに組み込まれた形になります。
つまり変更があった場合は、バイナリ自体のアップデートが必要になります。


ですがこのDLLを使用することで、バイナリ自体のアップデートは行わず
DLLのアップデートで済むことになるので非常に使い勝手がいいかと思います。


3.DLLの作成

今回は計算してくれるDLLを作成してみます。

Visual Studioを起動しプロジェクトを新規作成します。
テンプレートから【クラスライブラリ】を選択し、名前を付けて【OK】をクリックします。
今回は【Calc】という名称にしています。

f:id:tsu--kun:20201218132354p:plain


プロジェクトを作成したら下記のようにコードを記述します。

namespace Calc
{
    public class Addition
    {
        public static int Integer(int a, int b)
        {
            return a + b;
        }

        public static float Decimal(float a, float b)
        {
            return a + b;
        }
    }

    public class Subtraction
    {
        public static int Integer(int a, int b)
        {
            return a - b;
        }
        
        public static float Decimal(float a, float b)
        {
            return a - b;
        }
    }
}


【ビルド】→【Calcのビルド】をクリックしビルドを行うと
binフォルダに【Calc.DLL】が作成されています。


非常に簡単です。
これをアプリケーションに組み込んでみたいと思います。


4.DLLを使う

プロジェクトを作成します。
今回は【CalcTest】というコンソールアプリケーションを作成しました。

【ソリューションエクスプローラー】にある【参照】を右クリックし
【参照の追加】をクリックします。

f:id:tsu--kun:20201218131948p:plain


【参照マネージャー】ウィンドウの下部にある参照をクリックし
先程作成した、【Calc.DLL】を選択し【OK】をクリックします。

f:id:tsu--kun:20201218131957p:plain


参照に【Calc】が追加されていればOKです。

f:id:tsu--kun:20201218132025p:plain


コードは下記のとおりとしました。

using System;

namespace CalcTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(Calc.Addition.Integer(2, 1));
            Console.WriteLine(Calc.Addition.Decimal(0.2f, 0.1f));
            Console.WriteLine(Calc.Subtraction.Integer(2, 1));
            Console.WriteLine(Calc.Subtraction.Decimal(0.2f, 0.1f));
            Console.Read();
        }
    }
}

実行結果は下記のとおりとなりました。

f:id:tsu--kun:20201218132034p:plain

しっかり計算されています。

5.DLLの更新

DLLを更新する場合は【Calc.DLL】を上書きすればOKです。
ビルドした時にバイナリと同じフォルダに【Calc.DLL】が存在するので
これを上書きすればいいだけです。

【Calc.DLL】が見つからない場合は【プロパティ】にある
【ローカルにコピー】が【True】になっているか確認してみてください。

f:id:tsu--kun:20201218132407p:plain