Sdílet prostřednictvím


managed, unmanaged

Povolení řízení na úrovni funkce pro kompilování funkcí jako spravovaných nebo nespravovaných.

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

Poznámky

Možnost kompilátoru /clr poskytuje řízení na úrovni modulu pro kompilování funkcí jako buď spravovaných, nebo nespravovaných.

Nespravovaná funkce bude zkompilována pro nativní platformu a provádění části programu bude modulem CLR (Common Language Runtime) předáno nativní platformě.

Funkce jsou ve výchozím nastavení při použití /clr kompilovány jako spravované.

Při použití těchto Pragma:

  • Přidání direktivy pragma před funkci, ale nikoliv do těla funkce.

  • Přidat pragma po #include příkazy.Nepoužívejte tyto pragma před #include příkazy.

Kompilátor ignoruje direktivy pragma managed a unmanaged, není-li při kompilaci použita možnost kompilátoru /clr.

Když je vytvořena instance funkce šablony, stav direktivy pragma v době definice šablony určuje, zda je spravovaná nebo nespravovaná.

Další informace naleznete v tématu Inicializace smíšených sestavení.

Příklad

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

Viz také

Referenční dokumentace

Direktivy Pragma a klíčové slovo __Pragma