Freigeben über


managed, unmanaged

Aktivieren Sie LEVEL-Steuerelement FUNCTION zum Kompilieren von Funktionen, z. B. verwaltet oder nicht verwaltet.

#pragma managed
#pragma unmanaged
#pragma managed([push,] on | off)
#pragma managed(pop)

Hinweise

Die /clr-Compileroption stellt Steuerelement auf Modulebene zum Kompilieren von Funktionen bereitgestellt, die entweder verwaltet oder nicht verwaltet.

Eine nicht verwaltete Funktion ist für die systemeigene Plattform kompiliert, und die Ausführung dieses Teils des Programms wird an die systemeigene Plattform durch die Common Language Runtime übergeben.

Funktionen verwaltet kompiliert werden, z. B. standardmäßig beim /clr verwendet wird.

Verwenden Sie die folgenden Richtlinien, wenn diese Pragmas angewendet werden:

  • Fügen Sie das Pragma hinzugefügt, das einer Funktion jedoch nicht innerhalb eines Funktionsrumpfs befindet.

  • Fügen Sie das Pragma nach #include-Anweisungen hinzu (verwenden Sie diese Pragmas nicht vor #include-Anweisungen).

Der Compiler ignoriert die managed und unmanaged Pragmas, wenn /clr nicht in der Kompilierung verwendet wird.

Wenn eine Vorlagenfunktion instanziiert wird, bestimmt der Pragma Zustand zum Zeitpunkt der Definition für die Vorlage, wenn sie verwaltet oder nicht verwaltet ist.

Weitere Informationen finden Sie unter Initialisierung gemischter Assemblys.

Beispiel

// 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();
}
  
  

Siehe auch

Referenz

Pragma-Direktiven und das __Pragma-Schlüsselwort