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