Condividi tramite


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();
}
  
  

Vedere anche

Riferimenti

Direttive pragma e la parola chiave di __Pragma