managed
y unmanaged
pragma
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 unmanaged
pragma:
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 unmanaged
pragma 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.