Win32 DLL Class

Win32 で Gcm, Lcm Class を登録した DLL を作成します。

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

DLL の作成

  1. Win32 のネイティブモードでは「関数を登録」するのが基本ですが、GCM,LCM を計算する Class を登録した DLL を作成します。
    シンプルなプロジェクトを作成するために「空のプロジェクト」から作成します。
    Visual Studio .NET を起動して[ファイル][新規作成][プロジェクト]を選びます。
    [Visual C++][Win32][Win32コンソールアプリケーション]を選択します。
    プロジェクトの名前は GcmLcm にして下さい。

    [アプリケーションの設定]から[コンソールアプリケーション]を選択します。

  2. GcmLcm.h と GcmLcm.cpp をフォルダーに格納して、プロジェクトに加えます。
    GcmLcm.h のソースコードです。
    class GcmLcm で gcm() と lcm() の関数が定義されています。
    // GcmLcm.h
    class GcmLcm
    {
      public:
        static int gcm(int v1, int v2);
        static int lcm(int v1, int v2);
    };
    
    GcmLcm.cpp のソースコードです。
    // GcmLcm.cpp
    #include "GcmLcm.h"
    
    int GcmLcm::gcm(int v1, int v2)
    {   int w1,w2;
    
        w1 = v1;
        w2 = v2;
        while(w1 != w2)
        {   if (w1 > w2)    w1-= w2;
            else            w2-= w1;
        }
        return w1;
    }
    
    int GcmLcm::lcm(int v1, int v2)
    {
        return v1*v2/gcm(v1,v2);
    }
    
  3. プロジェクトのプロパティで、構成プロパティ→全般ページで、構成の種類をダイナミックライブラリ(.dll)に設定します。
    文字セットは「Unicode 文字セットを使用する」です。
    ソリューションのビルドを実行すると DLL が作成されます。
    構成の種類をスタティックライブラリ(.lib)に設定します。
    ソリューションのビルドを実行すると LIB が作成されます。
    作成された GcmLcm.dll と GcmLcm.lib が目的のファイルです。
    デバッグが済めば Release Mode でコンパイルして下さい。

DLL を呼び出す

  1. Visual Studio .NET を起動して[Visual C++][Win32][Win32コンソールアプリケーション]を選択します。

    [アプリケーションの設定]から[コンソールアプリケーション][空のプロジェクト]を選択します。

  2. プロジェクトフォルダーに GcmLcm.dll, GcmLcm.lib, GcmLcm.h, Maim.cpp を格納します。
    Maim.cpp のソースコードです。
    #pragma で "GcmLcm.lib" をプロジェクトに組み込んでいます。
    //Main.cpp
    #include <stdio.h>
    #include <conio.h>
    #include "GcmLcm.h"
    #pragma comment(lib,"GcmLcm.lib")
    
    int main(void)
    {
        GcmLcm   cls;
        printf("GCM(24,32)=%d  LCM(24,32)=%d\n", cls.gcm(24,32),cls.lcm(24,32));
        _getch();
        return 0;
    }
    
  3. プロジェクトを実行すると GCM と LCM が計算されます。
    GcmLcm.lib はコンパイルするときにだけ参照されます。
    他のフォルダーにプログラムを移すときは Main.exe と GcmLcm.dll をコピーして下さい。

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