managed, unmanaged
Abilitare il controllo a livello di funzione per la compilazione di funzioni come gestite o non gestite.
#pragma managed #pragma unmanaged #pragma managed([push,] on | off) #pragma managed(pop)
Note
L'opzione del compilatore /clr fornisce il controllo a livello di modulo per la compilazione di funzioni come gestite o non gestite.
Una funzione non gestita verrà compilata per la piattaforma nativa e l'esecuzione di tale parte del programma verrà passata alla piattaforma nativa da Common Language Runtime.
Le funzioni vengono compilate come gestite per impostazione predefinita quando /clr viene usato.
Quando si applicano questi pragma:
Aggiungere il pragma che precede una funzione ma non all'interno del corpo di una funzione.
Aggiungere il pragma dopo le istruzioni #include. Non usare questi pragma prima delle istruzioni #include.
Il compilatore ignora i pragma managed e unmanaged se /clr non è usato nella compilazione.
Quando viene creata un'istanza di una funzione di modello, lo stato del pragma al momento della definizione del modello determina se è gestita o non gestita.
Per altre informazioni, vedere Inizializzazione di assembly misti.
Esempio
// 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();
}