次の方法で共有


プロセス

マネージ アプリケーション プロセスが、プロセス内のすべてのアプリケーション ドメイン間で共有される特定のグローバル変数、静的メンバー変数、または静的ローカル変数のコピーを 1 つ持つことを指定します。 /clr:pure では、グローバル変数と静的変数が既定でアプリケーション ドメインごとになっているため、これは、主に、/clr:pure を指定してコンパイルするときに使用するためのものです。 /clr でコンパイルすると、グローバル変数と静的変数は既定でプロセスごとになります (そのため、__declspec(process) を使用する必要はありません)。

__declspec(process) でマークできるのは、グローバル変数、静的メンバー変数、またはネイティブ型の静的ローカル変数だけです。

/clr:pure を指定してコンパイルする場合、プロセスごととしてマークされている変数は、const としても宣言する必要があります。 これにより、プロセスごとの変数は 1 つのアプリケーション ドメイン内で変更されなくなり、他のアプリケーション ドメインに予測できない結果を与えることもなくなります。 __declspec(process) の主な用途は、/clr:pure でグローバル変数、静的メンバー変数、または静的ローカル変数のコンパイル時初期化を可能にすることです。

processは、/clr または /clr:pure を指定してコンパイルする場合にのみ有効であり、/clr:safe を指定してコンパイルする場合は無効になります。

各アプリケーション ドメインがグローバル変数の独自のコピーを持つようにするには、appdomain を使用します。

詳細については、「アプリケーション ドメインと Visual C++」を参照してください。

参照

関連項目

__declspec

C++ キーワード