The latest version of this topic can be found at process.
Specifies that your managed application process should have a single copy of a particular global variable, static member variable, or static local variable shared across all application domains in the process. This is primarily intended to be used when compiling with /clr:pure, because under /clr:pure global and static variables are per application domain, by default. When compiling with /clr, global and static variables are per process by default (do not need to use
Only a global variable, a static member variable, or a static local variable of native type can be marked with
When compiling with /clr:pure, variables marked as per process must also be declared as
const. This ensures that per process variables are not changed in one application domain, and giving unexpected results in another application domain. The primary intended use of
__declspec(process) is to enable compile time initialization of a global variable, static member variable, or static local variable under /clr:pure.
process is only valid when compiling with /clr or /clr:pure and is not valid when compiling with /clr:safe.
If you want each application domain to have its own copy of a global variable, use appdomain.
See Application Domains and Visual C++ for more information.