managed
a unmanaged
pragma
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
unmanaged
pragma:
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 unmanaged
pragma 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.