次の方法で共有


InitOnceInitialize 関数 (synchapi.h)

1 回限りの初期化構造体を初期化します。

構文

void InitOnceInitialize(
  [out] PINIT_ONCE InitOnce
);

パラメーター

[out] InitOnce

1 回限りの初期化構造体へのポインター。

戻り値

なし

解説

InitOnceInitialize 関数は、1 回限りの初期化構造体を動的に初期化するために使用されます。 構造体を静的に初期化するには、構造体変数に 定数INIT_ONCE_STATIC_INIT を割り当てます。

この関数を使用するアプリケーションをコンパイルするには、 _WIN32_WINNT を 0x0600 以降として定義します。 詳細については、「 Windows ヘッダーの使用」を参照してください。

1 回限りの初期化オブジェクトを移動またはコピーすることはできません。 プロセスは初期化オブジェクトを変更せず、代わりに論理的に不透明として扱う必要があります。 1 回限りの初期化関数のみを使用して、1 回限りの初期化オブジェクトを管理します。

次の例では 、InitOnceInitialize を呼び出して、 という名前 InitOnceの 1 回限りの初期化構造体を初期化します。 または、「 One-Time 初期化の使用」に示すように、構造体をグローバル変数として宣言することもできます。


//Requires Windows Vista, Windows Server 2008 or later
#define _WIN32_WINNT 0x0600

#include <windows.h>

BOOL StartInitialization()
{
    INIT_ONCE InitOnce;

    InitOnceInitialize(&InitOnce);

    //...
    return TRUE;
}

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー synchapi.h (Windows 7 の Windows.h、Windows Server 2008 Windows Server 2008 R2 を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

InitOnceExecuteOnce

1 回限り初期化

同期関数