1

私はApacheベースのアプリケーションを開発しており、カスタムモジュールはほとんどありません。

あるモジュールの一部の機能を他のモジュールと共有したいと考えています。スタートアップ段階でそれらを一緒に配線する必要があります。モジュール名で GetModuleHandle + GetProcAddress (Windows でのみ実行されます) を使用したいのですが、モジュールが Apache サーバーによって既に読み込まれている場合にのみ成功します。

Apache モジュールの読み込み順序を設定する方法はありますか。モジュールを制御する必要があるだけです。他のモジュールは関係ありません。

前もって感謝します。

4

1 に答える 1

1

モジュールのソースから Apache フックの呼び出し順序を制御しようとしている場合はAPR_HOOK_FIRST、 、APR_HOOK_MIDDLE、およびAPR_HOOK_LAST. または、他のモジュールに具体的な名前を付けて、順序の制約を適用することもできます。ドキュメントから:

... "これを行うには 2 つのメカニズムがあります。最初のかなり大雑把な方法では、他のモジュールに対してフックが実行される場所を大まかに指定できます。最後の引数はこれを制御します。可能な値は 3 つあります: APR_HOOK_FIRST、APR_HOOK_MIDDLEおよび APR_HOOK_LAST。

「特定の値を使用するすべてのモジュールは、相互に関連する任意の順序で実行できますが、もちろん、APR_HOOK_FIRST を使用するすべてのモジュールは、APR_HOOK_LAST の前にある APR_HOOK_MIDDLE の前に実行されます。いつ実行されるかを気にしないモジュールは、APR_HOOK_MIDDLE を使用する必要があります。 . これらの値は、APR_HOOK_FIRST-2 のような位置が他の関数よりもわずかに早くフックできるように、間隔が空けられています. ...

「他の方法では、より細かい制御が可能です。モジュールが他のモジュールの前(または後)に実行する必要があることを知っている場合、それらを名前で指定できます。2番目(3番目)の引数は、NULLで終了する文字列の配列であり、現在のモジュールの前 (後) に実行する必要があるモジュールの名前. たとえば、実行する前に "mod_xyz.c" と "mod_abc.c" を実行したい場合、次のようにフックします ..." [例は次のとおりです]

于 2013-01-24T21:07:23.420 に答える