Megosztás:


managed és unmanagedpragma

A függvényszintű vezérlés engedélyezése felügyelt vagy nem felügyelt függvények fordításához.

Szintaxis

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

Megjegyzések

A /clr fordító lehetőség modulszintű vezérlést biztosít a felügyelt vagy nem felügyelt függvények összeállításához.

A rendszer egy nem felügyelt függvényt állít össze a natív platformhoz. A program adott részének végrehajtását a közös nyelvi futtatókörnyezet továbbítja a natív platformnak.

A függvények alapértelmezés szerint felügyeltként vannak lefordítva /clr használatakor.

managed vagy unmanagedpragmaalkalmazásakor:

  • Adja hozzá a függvényt megelőző pragma, de a függvény törzsén belül nem.

  • Adja hozzá a pragma#include utasítások után. Ne használja #include utasítások előtt.

A fordító figyelmen kívül hagyja a managed és unmanagedpragma, ha /clr nem szerepel a fordításban.

A sablonfüggvények példányosításakor a pragma állapot határozza meg, hogy a sablon felügyelt vagy nem felügyelt-e.

További információ: Vegyes szerelvények inicializálása.

Példa

// 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.

Lásd még:

Pragma irányelvei, valamint a __pragma és _Pragma kulcsszavak