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