managed, unmanaged

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

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

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

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

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

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

Al aplicar estas pragmas:

  • 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 use estas pragmas antes de las instrucciones #include.

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

Cuando se crea una función de plantilla, el estado de pragma en el momento de definir la plantilla determina si es managed o unmanaged.

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

// 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();  
}  

En la función administrada. En la función no administrada.

Directives pragma y la palabra clave __pragma

Mostrar: