DLL Normal GCM,LCM

CLI Normal Mode で GCM, LCM を計算する関数を DLL に登録します。

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

Normal DLL の作成

  1. CLI の Normal Mode で GCM, LCM を計算する関数を登録した DLL を作成します。
    マネージドでは「Class を登録する」のが基本ですが、CLI Normal Mode(CLR プロジェクト)にはClassも関数も登録可能です。
    今回は gcm() 関数と lcm() 関数を登録します。
  2. 空のプロジェクトからシンプルなプロジェクトを作成します。
    Visual Studio .NET を起動して「空の CLR プロジェクト」を選択します。

  3. GcmLcm.h と GcmLcm.cpp をフォルダーに格納してプロジェクトに組み込みます。
    gcm() 関数と lcm() 関数が Class に含まれずに定義されています。
    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. プロジェクトのプロパティで[構成プロパティ][全般ページ]から構成の種類をダイナミックライブラリ(.dll)に設定します。
    文字セットは「Unicode 文字セットを使用する」です。

  5. ソリューションのビルドを実行すると Debug のフォルダに DLL と LIB が作成されます。
    デバッグが済めば Release Mode でコンパイルして下さい。
  6. ここで作成した GcmLcm.dll を C# から呼び出すことが出来ます。
    C#⇒DLL(GCM,LCM) を参照して下さい。

DLL を使う

  1. 空のプロジェクトからシンプルな Console Mode のプロジェクトを作成します。
    Visual Studio .NET を起動して「空の CLR プロジェクト」を選択します。

  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. プロジェクトを実行すると GCM, LCM が計算されます。
    GcmLcm.lib はコンパイルするときにだけ参照されます。
    他のフォルダーからプログラムを実行するときは *.exe と *.dll をコピーして下さい。

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