DLL GcmLcm class

32 と 24 の GCM は 8 で、LCM は 96 です

GCM(最大公約数), LCM(最小公倍数)を計算する DLL を作成します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

ref DLL の作成

  1. テンプレートを使って作成したプロジェクトには、プログラマにとって直接関係しない多くのファイルが作成されます。
    今回は空のプロジェクトからシンプルなプロジェクトを作成してみましょう。
    Visual Studio .NET を起動して「空の CLR プロジェクト」を選択します。
    プロジェクトは GcmLcm にして下さい。

  2. GcmLcm.h と GcmLcm.cpp をプロジェクトのフォルダーに格納します。
    GcmLcm.h のソースコードです。
    // GcmLcm.h
    #pragma once
    
    using namespace System;
    namespace GcmLcm {
    
        public ref class Class1
        {
          private:
            int     w1,w2;
    
          public:
            int gcm(int v1, int v2);
            int lcm(int v1, int v2);
        };
    }
    
    GcmLcm.cpp のソースコードです。
    // GcmLcm.cpp
    #include "GcmLcm.h"
    
    namespace GcmLcm {
        int Class1::gcm(int v1, int v2)
        {
            w1 = v1;
            w2 = v2;
            while(w1 != w2)
            {   if (w1 > w2)    w1-= w2;
                else            w2-= w1;
            }
            return w1;
        }
    
        int Class1::lcm(int v1, int v2)
        {
            return v1*v2/gcm(v1,v2);
        }
    }
    
  3. メニューの[追加][既存項目]から GcmLcm.h と GcmLcm.cpp をプロジェクトに追加します。
  4. プロジェクトのプロパティで[構成プロパティ][全般ページ]から構成の種類をダイナミックライブラリ(.dll)に設定します。
    文字セットは「Unicode 文字セットを使用する」です。

  5. ソリューションのビルドを実行すると GcmLcm.dll が作成されます。
    これが目的の DLL(Dynamic Link Library) です。
    デバッグが済めば Release Mode でコンパイルして下さい。
  6. ここで作成した GcmLcm.dll を C# から呼び出すことが出来ます。
    C#⇒C++/CLI GcmLcm.dll を参照して下さい。

DLL を使う

  1. こちらも空のプロジェクトからシンプルなプロジェクトを作成します。
    Visual Studio .NET を起動して「空の CLR プロジェクト」を選択します。
    プロジェクトは Console にして下さい。
    ホームページの画像は容量節約のため他の言語と共有しているので説明とは異なる場合があります。

  2. プロジェクトのフォルダーに Console.cpp を格納して、プロジェクトに取り込みます。
    Console.cpp のソースコードです。
    GcmLcm は DLL の namespace の名前です。
    /*★ GCM,LCM  C++/CLI DLL    前田 稔 ★*/
    using namespace System;
    using namespace GcmLcm;
    
    int main(array ^args)
    {
        int     d1 = 32;
        int     d2 = 24;
        Class1^ cls = gcnew Class1();
        Console::WriteLine("{0} と {1} の GCM は {2} で、LCM は {3} です",
            d1,d2,cls->gcm(d1,d2),cls->lcm(d1,d2));
        delete cls;
        System::Console::ReadLine();
        return 0;
    }
    
  3. プロジェクトのフォルダーに GcmLcm.dll をコピーします。
    メニューから[プロジェクト(P)][Consoleのプロパティ]を開きます。
    [共通プロパティ-参照設定]から[新しい参照の追加]を選択します。
    参照の追加から[参照]タグを選び、GcmLcm.dll を組み込みます。

  4. プロジェクトを実行すると GCM と LCM が計算されます。
    32 と 24 の GCM は 8 で、LCM は 96 です

超初心者のプログラム入門(C/C++)