DLL Normal Hello

CLI Normal Mode で "Hello DLL" を表示する関数を DLL に登録します。
ホームページの画像は容量節約のため他のページと共有しているので説明とは異なる場合があります。

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

Normal DLL の作成

  1. CLI の Normal Mode で "Hello DLL" を表示する関数を登録した DLL を作成します。
    マネージドでは「Class を登録する」のが基本ですが、CLI Normal Mode(CLR プロジェクト)にはClassも関数も登録可能です。
    今回は Win32 DLL と同じ要領で、関数を登録します。
    ref object class や value object class とは、様子が違うので注意して下さい。
  2. 空のプロジェクトからシンプルなプロジェクトを作成します。
    Visual Studio .NET を起動して「空の CLR プロジェクト」を選択します。
    プロジェクトの名前は Hello にして下さい。

  3. Hello.h と Hello.cpp をフォルダーに格納してプロジェクトに組み込みます。
    HelloMsg() 関数が Class に含まれずに、単独で定義されています。
    Hello.h のソースコードです。
    //Hello.h
    #include "stdio.h"
    
    extern "C"
    {
        __declspec(dllexport) void  HelloMsg();
    }
    
    Hello.cpp のソースコードです。
    //Hello.cpp
    #include "hello.h"
    
    void  HelloMsg()
    {
        printf("Hello DLL\n");
    }
    
  4. プロジェクトのプロパティで[構成プロパティ][全般ページ]から構成の種類をダイナミックライブラリ(.dll)に設定します。
    文字セットは「Unicode 文字セットを使用する」です。

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

DLL を使う

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

  2. プロジェクトのフォルダーに Hello.dll, Hello.lib, Hello.h, Console.cpp を格納します。
    Console.cpp のソースコードです。
    #pragma で "Hello.lib" をプロジェクトに組み込んでいます。
    //Console.cpp
    #include <stdio.h>
    #include <conio.h>
    #include "Hello.h"
    #pragma comment(lib,"Hello.lib")
    
    int main(void)
    {
        HelloMsg();
        _getch();
        return 0;
    }
    
  3. プロジェクトを実行すると "Hello DLL" が表示されます。
    Hello.lib はコンパイルするときにだけ参照されます。
    他のフォルダーからプログラムを実行するときは *.exe と *.dll をコピーして下さい。

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