managed, unmanaged

El control en el nivel de función de permiso para compilar funciona como administrado o no administrado.

#pragma managed
#pragma unmanaged
#pragma managed([push,] on | off)
#pragma managed(pop)

Comentarios

La opción del compilador /clr proporciona control de nivel de módulo para las funciones de compilación o como administrado o no administrado.

Una función no administrada se compilará para la plataforma nativa, y la ejecución de esa parte del programa se pasará a la plataforma nativa por Common Language Runtime.

Las funciones son compiladas como controlado de forma predeterminada cuando se utiliza /clr .

Utilice las instrucciones siguientes al aplicar estos pragmas:

  • Agregue el pragma que precede a una función pero no dentro del cuerpo de la función.

  • agregue el pragma después de las instrucciones de #include (no utilice estos pragmas antes de las instrucciones de #include ).

El compilador omite pragmas de managed y de unmanaged si /clr no se utiliza en la compilación.

Cuando se crea una función de plantilla, el estado de pragma a la hora de la definición de la plantilla determina si es administrada o no administrada.

Para obtener más información, vea Inicialización de ensamblados mixtos.

Ejemplo

// pragma_directives_managed_unmanaged.cpp
// compile with: /clr
#include <stdio.h>

// func1 is managed
void func1() {
   System::Console::WriteLine("In managed function.");
}

// #pragma unmanaged
// push managed state on to stack and set unmanaged state
#pragma managed(push, off)

// func2 is unmanaged
void func2() {
   printf("In unmanaged function.\n");
}

// #pragma managed
#pragma managed(pop)

// main is managed
int main() {
   func1();
   func2();
}
  
  

Vea también

Referencia

Directivas de pragma y la palabra clave de __Pragma