managed et unmanagedpragma

Activez le contrôle au niveau de la fonction pour compiler des fonctions en tant que fonctions gérées ou non managées.

Syntaxe

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

Notes

L’option /clr du compilateur fournit un contrôle au niveau du module pour la compilation de fonctions en tant que managées ou non managées.

Une fonction non managée est compilée pour la plateforme native. L’exécution de cette partie du programme sera transmise à la plateforme native par le Common Language Runtime.

Les fonctions sont compilées comme managées par défaut lorsque l'option /clr est utilisée.

Lors de l’application d’un managed ou unmanagedpragma:

  • Ajoutez la pragma fonction précédente, mais pas dans un corps de fonction.

  • Ajoutez les pragma instructions after #include . Ne l’utilisez pas avant les #include instructions.

Le compilateur ignore le managed fichier et unmanagedpragma s’il /clr n’est pas utilisé dans la compilation.

Lorsqu’une fonction de modèle est instanciée, l’état pragma lorsque le modèle est défini détermine s’il est géré ou non managé.

Pour plus d’informations, consultez Initialisation des assemblys mixtes.

Exemple

// 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.

Voir aussi

Directives pragma et les __pragma_Pragma mot clé