Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Aktivera kontroll på funktionsnivå för att kompilera funktioner som hanterade eller ohanterade.
Syntax
#pragma managed
#pragma unmanaged
#pragma managed([push,] {on|off})
#pragma managed(pop)
Anmärkningar
Alternativet /clr kompilator ger kontroll på modulnivå för kompilering av funktioner antingen som hanterade eller ohanterade.
En ohanterad funktion kompileras för den interna plattformen. Körningen av den delen av programmet skickas till den interna plattformen av den gemensamma språkkörningen.
Funktioner kompileras som hanterade som standard när /clr används.
När du använder en managed eller unmanagedpragma:
Lägg till pragma före en funktion, men inte i en funktionstext.
Lägg till pragma efter
#include-instruktioner. Använd den inte före några#include-instruktioner.
Kompilatorn ignorerar managed och unmanagedpragma om /clr inte används i kompilering.
När en mallfunktion instansieras avgör pragma tillstånd när mallen definieras om den hanteras eller hanteras ohanterad.
Mer information finns i Initiering av blandade sammansättningar.
Exempel
// 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.