VCでDLLを作る

http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_DLL3.html
以下はそのまま抜粋

DLLの作成方法
   1. DLLプロジェクトを生成する
      VC++の「ファイル」−「新規作成」メニューで新規作成ダイアログを開き、「プロジェクト」タブを選択する。 
      「Win32 Dynamic-Link Library」を選択し、プロジェクト名を「TestDLL」としてOKボタンを押す。
      次の画面では「単純なDLLプロジェクト」を選択しOKボタンを押す。これでプロジェクトのスケルトンが完成する。
   2. 関数を追加する
      ここでは、例としてメッセージボックスを表示する関数を追加してみる。
      まず、stdafx.hファイルを開いて以下のように関数のプロトタイプを追加する。

	// stdafx.hファイルでの記述 --------------------
	・・・・・・
	#include &ltwindows.h>

	// TODO: プログラムで必要なヘッダー参照を追加してください。
	extern "C" __declspec(dllexport) void DisplayMessage(LPCTSTR lpszMessage);

      次に、TestDLL.cppファイルにこの関数の実装を追加する。

	extern "C" __declspec(dllexport) void DisplayMessage(LPCTSTR lpszMessage)
	{
		::MessageBox(NULL, lpszMessage, "test", MB_OK);
	}

   3. これでビルドすれば、TestDLL.dllは完成である。 

作成したDLLを使う

   1. プロジェクトを作成する。「Win32 Application」を選択し、プロジェクト名をTestDLLEXEとする。
      次の画面では「単純なアプリケーション」を選択しOKボタンを押す。これでプロジェクトのスケルトンが完成する。

   2. ソースファイルの記述
      TestDLLEXE.cppを開き、以下のように記述する。
      LoadLibrary関数の引数では先に作成したTestDLL.dllへのパスを指定すること。

	#include "stdafx.h"

	// エクスポートされた関数と同じ型を定義する
	typedef void (*DISPLAYMESSAGE)(LPCTSTR);

	int APIENTRY WinMain(HINSTANCE hInstance,
	                     HINSTANCE hPrevInstance,
	                     LPSTR     lpCmdLine,
	                     int       nCmdShow )
	{
		// TODO: この位置にコードを記述してください。

		HINSTANCE hDllInstance;
		DISPLAYMESSAGE DisplayMessage;	// 関数アドレス

		// DLLを呼び出し側プロセスのアドレス空間内にマップする
		hDllInstance = ::LoadLibrary("..\\TestDLL\\Debug\\TestDLL.dll");

		if( hDllInstance != NULL )
		{
                        // エクスポートされた関数のアドレスを取得
                        DisplayMessage =
				(DISPLAYMESSAGE)(::GetProcAddress(hDllInstance, "DisplayMessage"));
                        if( DisplayMessage != NULL )
                              DisplayMessage("Hello!!");
		}

		……
		FreeLibrary(hDllInstance);

		return 0;
	}
   3. プログラムの実行
      ビルドして生成されたTestDLLEXE.exeを実行し、「Hello!!」というメッセージボックスが表示されれば成功である