汎用 DLL ロード・アンロードフックヘッダー。
このヘッダーをインクルードした .c ファイルに対して、プラットフォームごとの DLL ロード・アンロードフックを提供します。
インクルード元の .c ファイルは以下の関数を定義する必要があります。
Linux : __attribute__((constructor/destructor)) により onLoad / onUnload が 自動的に呼び出されます。
Windows: DllMain の DLL_PROCESS_ATTACH / DLL_PROCESS_DETACH により onLoad / onUnload が呼び出されます。
c-modenization-kit sample team
1.0.0
2026/02/23
Copyright (C) CompanyName, Ltd. 2026. All rights reserved.
static void onLoad ( void )ライブラリのロード時に呼び出されるフック関数。
このヘッダーをインクルードする .c ファイルで定義する必要があります。
Linux では dlopen() またはプロセス起動時に、 Windows では LoadLibrary() またはプロセス起動時に呼び出されます。
static void onUnload ( void )ライブラリのアンロード時に呼び出されるフック関数。
このヘッダーをインクルードする .c ファイルで定義する必要があります。
Linux では dlclose() またはプロセス正常終了時に、 Windows では FreeLibrary() またはプロセス正常終了時に呼び出されます。
__attribute__ ( (constructor) )共有ライブラリロード時のコンストラクタ (Linux 専用)。
__attribute__((constructor)) により、dlopen() または プロセス起動時に自動的に呼び出されます。
__attribute__ ( (destructor) )共有ライブラリアンロード時のデストラクタ (Linux 専用)。
__attribute__((destructor)) により、dlclose() または プロセス正常終了時に自動的に呼び出されます。
#define DLLMAIN_INFO_MSG ( msg )
syslog(LOG_INFO, (msg))DllMain / constructor / destructor コンテキストで安全に 情報メッセージを出力するマクロ。
DllMain コンテキストおよび constructor / destructor コンテキストでは 呼び出し可能な API に制限があります。
Linux では syslog(LOG_INFO, …) を、Windows では OutputDebugStringA を使用することで制約を回避します。