Freigeben über


managed und unmanagedpragma

Aktivieren Sie das Steuerelement auf Funktionsebene, um Funktionen als verwaltet oder nicht verwaltet zu kompilieren.

Syntax

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

Hinweise

Die /clr Compileroption bietet Steuerung auf Modulebene zum Kompilieren von Funktionen als verwaltet oder nicht verwaltet.

Eine nicht verwaltete Funktion wird für die systemeigene Plattform kompiliert. Die Ausführung dieses Teils des Programms wird von der Common Language Runtime an die systemeigene Plattform übergeben.

Funktionen werden standardmäßig als verwaltet kompiliert, wenn /clr verwendet wird.

Beim Anwenden eines managed oder unmanagedpragma:

  • Fügen Sie die pragma vorangehende Funktion hinzu, aber nicht innerhalb eines Funktionstexts.

  • Fügen Sie die pragma After-Anweisungen #include hinzu. Verwenden Sie sie nicht vor Anweisungen #include .

Der Compiler ignoriert die managed Und unmanagedpragma wenn /clr nicht in der Kompilierung verwendet wird.

Wenn eine Vorlagenfunktion instanziiert wird, bestimmt der pragma Zustand, wenn die Vorlage definiert wird, ob sie verwaltet oder nicht verwaltet wird.

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();
}
In managed function.
In unmanaged function.

Siehe auch

PragmaDirektiven und Schlüsselwörter __pragma _Pragma