DLL からのエクスポート
更新 : 2007 年 11 月
.DLL のレイアウトは .exe ファイルとよく似ていますが、重要な相違点が 1 つあります。DLL ファイルには、エクスポート テーブルが含まれています。エクスポート テーブルには、DLL が別の実行形式に対してエクスポートする各関数の名前が含まれています。これらの関数は、DLL のエントリ ポイントです。エクスポート テーブルに記述されたエクスポート関数のみが、別の実行形式にアクセスできます。DLL 内のその他の関数は、その DLL でしか使えません。DLL のエクスポート テーブルを表示するには、DUMPBIN ツールに /EXPORTS オプションを指定します。
DLL から関数をエクスポートする方法には、次の 2 つがあります。
モジュール定義 (.def) ファイルを作成し、DLL をビルドするときに .def ファイルを使用します。名前ではなく序数で DLL から関数をエクスポートする場合は、この方法を使用します。
関数の定義に __declspec(dllexport) キーワードを使用します。
上のどちらかの方法を使って関数をエクスポートする場合は、必ず __stdcall の呼び出し規約を使います。