Compartir a través de


managed y unmanagedpragma

Habilite el control de nivel de función para compilar funciones como administradas o no administradas.

Sintaxis

#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 compilar las funciones como administradas o no administradas.

Se compila una función no administrada para la plataforma nativa. Common Language Runtime pasará la ejecución de esa parte del programa a la plataforma nativa.

Las funciones se compilan como administradas de forma predeterminada cuando se utiliza /clr.

Al aplicar managed o unmanagedpragma:

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

  • Agregue la pragma después de las instrucciones #include. No lo use antes de ninguna instrucción #include.

El compilador omite las managed y unmanagedpragma si no se utiliza /clr en la compilación.

Cuando se crea una instancia de una función de plantilla, el estado depragma en el momento de definir la plantilla determina si está administrada o no administrada.

Para 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();
}
In managed function.
In unmanaged function.

Vea también

Pragmadirectivas y las __pragma palabras clave y _Pragma