
mod_dll.cファイルに含まれ、Windowsではデフォルトでコンパイルされていません。これはWin32 DLLsに含まれているなら、スタートアップ時にサーバにある実行コードとモジュールのローディングのためのものです。
これらのモジュールがDLLファイルにコンパイルされていれば、DLL モジュールはそれ自身がコンフィギュアしているものとして(初回時のみ、コンフィグファイルの再読み込みは、ロードされたモジュールの状態に影響しません)、サーバに他のモジュールをロードします。
このモジュールはApache 1.3とそれ以降に含まれ、Microsoft Windowsでのみ有効です。
ApacheモジュールAPIはUnix版とWindows版で違いがありません。多くのモジュールは、変更なしか、わずかな変更によってWindows上で動きますが、他はWindowsに存在しないUnixのアーキテクチャの側面に頼っているので、作動しないでしょう。
モジュールが動いているとき、二つのうちの一つのやり方でサーバに追加されます。Unixについては、サーバにコンパイルされます。WindowsのApacheは、UnixのApacheのConfigureプログラムを持っていないので、モジュールのソースファイルはApacheCoreプロジェクトファイルに追加されるべきで、そのシンボルはnt\modules.cファイルに追加されるべきです。
二番目はLoadModule命令を使って、作動時のサーバにロードされる割り当てられたライブラリであるDLLとして、モジュールをコンパイルする方法です。これらのモジュールDLLは、サーバの再コンパイルをしないでウィンドウズのインストールに配布され、どんなApacheでも作動します。
モジュールDLLを作るために、モジュールのソースファイルに小さな変更が必要です: モジュールレコードはDLLからエクスポートされなければなりません(後に作られるもの; 以下を参照)。これを行うためには、MODULE_VAR_EXPORT(Apacheヘッダファイルで定義される)に、あなたのモジュールのモジュールレコード定義を追加してください。例えば、もしモジュールが以下を持っていれば:
module foo_module;
上記を置き換えると:
module MODULE_VAR_EXPORT foo_module;
これはWindowsでのみ作動し、モジュールは必要があればUnixで変更され、使われ続けることに注意してください。また、もし.DEFファイルに精通していればメソッドのかわりにモジュールレコードをエクスポートすることができます。
モジュールを含むDLLを作ってください。ApacheCore.dllの分割されたライブラリがコンパイルされると、作成されたApacheCore.libエクスポートライブラリに対してこれをリンクすることが必要です。Apacheヘッダファイルが確実に割り振られるようにコンパイラの設定を変更することがあるかもしれません。
これはモジュールのDLLバージョンを作成します。単純に、サーバルートにそれを置いて、それをロードするためにLoadModule命令を使ってください。
LoadFile命令は、サーバ起動時に名付けられたオブジェクトファイルかライブラリにリンクします; これは、作動するなんらかのモジュールのために、要求されるかもしれない追加コードをロードするために使われます。FilenameはServerRootに関連しています。
LoadModule命令はオブジェクトファイルかライブラリfilenameにリンクして、作動しているモジュールのリストにmoduleと名付けられたモジュール構造を追加します。Moduleはファイルにあるタイプmoduleの外部変数名です。例えば:
LoadModule status_module modules/ApacheModuleStatus.dll
サーバルートのモジュールサブディレクトリにあるApacheModuleStatus.dllモジュールをロードします。
The English original manual is here.