zarządzane, niezarządzane
Włącz kontrola na poziomie funkcji do kompilowania funkcje jako zarządzane i niezarządzane.
#pragma managed #pragma unmanaged #pragma managed([push,] on | off) #pragma managed(pop)
Uwagi
/CLR opcję kompilatora zapewnia kontrolę poziomu modułu dla funkcji zarządzanych i niezarządzanych kompilacji.
Funkcję niezarządzane zostanie skompilowany macierzysty platformy i realizacji część programu zostaną przekazane do platformy macierzysty przez środowisko common language runtime.
Funkcje stanowią skompilowany zgodnie z zarządzanego domyślnie po /clr jest używany.
W przypadku stosowania tych pragma:
Dodaj dyrektywę pragma, poprzedzających funkcji, ale nie w treści funkcji.
Dodaj dyrektywę pragma po #include instrukcji.Nie należy używać tych pragma przed #include instrukcji.
Kompilator ignoruje managed i unmanaged pragma Jeśli /clr nie jest używany podczas kompilacji.
Podczas tworzenia wystąpienia funkcji szablonu, stan dyrektywę pragma w czasie definicji szablonu określa, czy jest zarządzane i niezarządzane.
Aby uzyskać więcej informacji, zobacz Inicjalizacja zestawów mieszanych.
Przykład
// 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();
}