Condividi tramite


managed e unmanagedpragma

Abilitare il controllo a livello di funzione per compilare le funzioni come gestite o non gestite.

Sintassi

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

Osservazioni:

L'opzione /clr del compilatore fornisce il controllo a livello di modulo per la compilazione di funzioni come gestite o non gestite.

Una funzione non gestita viene compilata per la piattaforma nativa. 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 applica un managed oggetto o unmanagedpragma:

  • Aggiungere la pragma funzione precedente, ma non all'interno di un corpo della funzione.

  • Aggiungere le pragma istruzioni after #include . Non usarlo prima di alcuna #include istruzione.

Il compilatore ignora e managed unmanagedpragma se /clr non viene usato nella compilazione.

Quando viene creata un'istanza di una funzione modello, lo pragma stato quando viene definito il modello determina se è gestito o non gestito.

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();
}
In managed function.
In unmanaged function.

Vedi anche

Pragmadirettive e parole __pragma chiave e _Pragma