managed, unmanaged
Abilitazione di controllo per compilare funzioni come gestito o non gestito a livello di funzione.
#pragma managed
#pragma unmanaged
#pragma managed([push,] on | off)
#pragma managed(pop)
Note
/clr l'opzione del compilatore fornisce il controllo a livello di modulo per compilare funzioni o come gestito o non gestito.
Una funzione non gestita verrà compilata per la piattaforma nativa e l'esecuzione della parte del programma verrà passata alla piattaforma nativa da Common Language Runtime.
Le funzioni compilate come gestito per impostazione predefinita quando /clr viene utilizzato.
Utilizzare le linee guida seguenti si applicano i pragma:
Aggiungere il pragma che precede una funzione senza l'interno del corpo della funzione.
Aggiungere al pragma #include le istruzioni (non utilizzare prima questi pragma #include istruzioni).
Il compilatore ignora managed e unmanaged pragma se /clr non è utilizzato nella compilazione.
Quando una funzione di modello viene creata un'istanza, lo stato di pragma al momento della definizione del modello determina se viene gestito o non gestito.
Per ulteriori 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();
}