managed i unmanagedpragma

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 unmanagedpragma:

  • 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 unmanagedpragma , 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.

Zobacz też

Pragmadyrektywy i __pragma słowa kluczowe i _Pragma