funcman/include/dllmain.h

1 ファイル

1.1 funcman/include/dllmain.h

汎用 DLL ロード・アンロードフックヘッダー。

このヘッダーをインクルードした .c ファイルに対して、プラットフォームごとの DLL ロード・アンロードフックを提供します。

インクルード元の .c ファイルは以下の関数を定義する必要があります。

  • onLoad() : ライブラリロード時に呼び出される関数
  • onUnload(): ライブラリアンロード時に呼び出される関数

Linux : __attribute__((constructor/destructor)) により onLoad / onUnload が 自動的に呼び出されます。

Windows: DllMain の DLL_PROCESS_ATTACH / DLL_PROCESS_DETACH により onLoad / onUnload が呼び出されます。

1.1.1 作者

c-modenization-kit sample team

1.1.2 バージョン

1.0.0

1.1.3 日付

2026/02/23

1.1.4 インクルード元

dllmain.h のインクルード元

1.1.5 著作権

Copyright (C) CompanyName, Ltd. 2026. All rights reserved.

2 関数

2.1 onLoad

static void onLoad ( void )

ライブラリのロード時に呼び出されるフック関数。

このヘッダーをインクルードする .c ファイルで定義する必要があります。
Linux では dlopen() またはプロセス起動時に、 Windows では LoadLibrary() またはプロセス起動時に呼び出されます。

2.2 onUnload

static void onUnload ( void )

ライブラリのアンロード時に呼び出されるフック関数。

このヘッダーをインクルードする .c ファイルで定義する必要があります。
Linux では dlclose() またはプロセス正常終了時に、 Windows では FreeLibrary() またはプロセス正常終了時に呼び出されます。

2.3 __attribute__

__attribute__ ( (constructor) )

共有ライブラリロード時のコンストラクタ (Linux 専用)。

__attribute__((constructor)) により、dlopen() または プロセス起動時に自動的に呼び出されます。

2.4 __attribute__

__attribute__ ( (destructor) )

共有ライブラリアンロード時のデストラクタ (Linux 専用)。

__attribute__((destructor)) により、dlclose() または プロセス正常終了時に自動的に呼び出されます。

3 定数、マクロ

3.1 DLLMAIN_INFO_MSG

#define DLLMAIN_INFO_MSG ( msg )
    syslog(LOG_INFO, (msg))

DllMain / constructor / destructor コンテキストで安全に 情報メッセージを出力するマクロ。

DllMain コンテキストおよび constructor / destructor コンテキストでは 呼び出し可能な API に制限があります。
Linux では syslog(LOG_INFO, …) を、Windows では OutputDebugStringA を使用することで制約を回避します。

3.1.1 引数

  • msg [in] 出力するメッセージ文字列リテラル。