Win32 DLL Gcm,Lcm

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

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

DLL の作成

  1. Win32 ネイティブモードの DLL では「関数を登録する」のが基本です。
    最大公約数を計算する gcm() 関数と、最小公倍数を計算する lcm() 関数を登録した DLL を作成します。
  2. テンプレートを使って作成したプロジェクトには、プログラマにとって直接関係しない多くのファイルが作成されます。
    シンプルなプロジェクトを作成するために「空のプロジェクト」から作成します。
    Visual Studio .NET を起動して[ファイル][新規作成][プロジェクト]を選びます。
    [Visual C++][Win32][Win32コンソールアプリケーション]を選択して GcmLcm の名前で作成します。

    [アプリケーションの設定]で[空のプロジェクト]を選択します。
    画像は容量節約のため他のページと兼用しているので説明とは異なる場合があるので注意して下さい。

  3. GcmLcm.h と GcmLcm.cpp をフォルダーに格納します。
    GcmLcm.h のソースコードです。
    //GcmLcm.h
    extern "C"
    {
        __declspec(dllexport) int gcm(int v1, int v2);
        __declspec(dllexport) int lcm(int v1, int v2);
    }
    
    GcmLcm.cpp のソースコードです。
    //GcmLcm.cpp
    #include "GcmLcm.h"
    
    int  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  lcm(int v1, int v2)
    {
        return v1*v2/gcm(v1,v2);
    }
    
  4. メニューの[追加][既存項目]から GcmLcm.h と GcmLcm.cpp をプロジェクトに追加します。
  5. プロジェクトのプロパティで[構成プロパティ][全般ページ]から構成の種類をダイナミックライブラリ(.dll)に設定します。
    文字セットは「Unicode 文字セットを使用する」です。

  6. ソリューションのビルドを実行すると GcmLcm.dll と GcmLcm.lib が作成されます。
    デバッグが済めば Release Mode でコンパイルして下さい。

DLL を呼び出す

  1. シンプルなプロジェクトを作成するために「空のプロジェクト」から作成します。
    Visual Studio .NET を起動して[ファイル][新規作成][プロジェクト]を選びます。
    [Visual C++][Win32][Win32コンソールアプリケーション]を選択して Console の名前で作成します。
    画像は容量節約のため他のページと兼用しているので説明とは異なる場合があるので注意して下さい。

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

  2. プロジェクトフォルダーに GcmLcm.dll, GcmLcm.lib, GcmLcm.h, Console.cpp を格納します。
    Console.cpp のソースコードです。
    #pragma で "GcmLcm.lib" をプロジェクトに組み込んでいます。
    #include <stdio.h>
    #include <conio.h>
    #include "GcmLcm.h"
    #pragma once
    #pragma comment(lib,"GcmLcm.lib")
    
    int main(void)
    {
        printf("GCM(24,32)=%d  LCM(24,32)=%d\n", gcm(24,32),lcm(24,32));
        _getch();
        return(0);
    }
    
  3. プロジェクトを実行すると最大公約数と最小公倍数が表示されます。
    GcmLcm.lib はコンパイルするときにだけ参照されます。
    他のフォルダーにプログラムを移すときは Console.exe と GcmLcm.dll をコピーして下さい。
    超初心者のプログラム入門(C言語 Windows) の「DLL(Dynamic Link Library)」に Win32 DLL を使ったプログラムを掲載しています。

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