Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.


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 __declspec(process).

Only a global variable, a static member variable, or a static local variable of native type can be marked with __declspec(process).

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.

Community Additions

© 2015 Microsoft