Compartir a través de


Error del compilador C2441

"variable": cualquier símbolo declarado con __declspec(proceso) debe ser constante en el modo /clr:pure

Comentarios

Las opciones del compilador /clr:pure y /clr:safe están en desuso en Visual Studio 2015 y no se admiten en Visual Studio 2017.

De forma predeterminada, las variables son por dominio de aplicación en /clr:pure. Una variable marcada __declspec(process) en /clr:pure es propensa a errores si se modifica en un dominio de la aplicación y se lee en otro.

Por consiguiente, el compilador exige que las variables por proceso estén const en /clr:pure, lo que las convierte en de solo lectura en todos los dominios de la aplicación.

Para más información, consulte process y /clr (compilación con Common Language Runtime).

Ejemplo

El ejemplo siguiente genera el error C2441.

// C2441.cpp
// compile with: /clr:pure /c
__declspec(process) int i;   // C2441
__declspec(process) const int j = 0;   // OK