managed
i unmanaged
pragma
Włącz kontrolę na poziomie funkcji, aby kompilować funkcje jako zarządzane lub niezarządzane.
Składnia
#pragma managed
#pragma unmanaged
#pragma managed(
[push,
] {on
|off
})
#pragma managed(pop)
Uwagi
Opcja kompilatora /clr
zapewnia kontrolę na poziomie modułu na potrzeby kompilowania funkcji jako zarządzanych lub niezarządzanych.
Funkcja niezarządzana jest kompilowana dla platformy natywnej. Wykonanie tej części programu zostanie przekazane do platformy natywnej przez środowisko uruchomieniowe języka wspólnego.
Funkcje są domyślnie kompilowane jako zarządzane, gdy /clr
są używane.
Podczas stosowania elementu managed
lub unmanaged
pragma:
Dodaj poprzednią pragma funkcję, ale nie w treści funkcji.
Dodaj instrukcje pragma after
#include
. Nie używaj go przed żadnymi#include
instrukcjami.
Kompilator ignoruje element managed
i unmanaged
pragma , jeśli /clr
nie jest używany w kompilacji.
Po utworzeniu wystąpienia funkcji szablonu stan po zdefiniowaniu szablonu określa, pragma czy jest zarządzany, czy niezarządzany.
Aby uzyskać więcej informacji, zobacz Inicjowanie 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();
}
In managed function.
In unmanaged function.