Sdílet prostřednictvím


managed a unmanagedpragma

Povolte řízení na úrovni funkce ke kompilaci funkcí jako spravovaných nebo nespravovaných.

Syntaxe

#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 kompilaci funkcí jako spravovaných nebo nespravovaných.

Nespravovaná funkce je zkompilována pro nativní platformu. Spuštění této části programu se předá nativní platformě modulem CLR (Common Language Runtime).

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

Při použití nebo managed unmanagedpragma:

  • pragma Přidejte předchozí funkci, ale ne do těla funkce.

  • Přidejte následující pragma #include příkazy. Nepoužívejte ho před žádnými #include příkazy.

Kompilátor ignoruje managed a unmanagedpragma pokud /clr se v kompilaci nepoužívá.

Když je vytvořena instance funkce šablony, stav při definování šablony určuje, pragma jestli 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();
}
In managed function.
In unmanaged function.

Viz také

Pragma direktivy a __pragma _Pragma klíčová slova