Share via


managed dan unmanagedpragma

Aktifkan kontrol tingkat fungsi untuk mengkompilasi fungsi sebagai terkelola atau tidak terkelola.

Sintaks

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

Keterangan

Opsi /clr kompilator menyediakan kontrol tingkat modul untuk mengkompilasi fungsi baik sebagai terkelola atau tidak terkelola.

Fungsi yang tidak dikelola dikompilasi untuk platform asli. Eksekusi bagian program tersebut akan diteruskan ke platform asli oleh runtime bahasa umum.

Fungsi dikompilasi sebagai dikelola secara default saat /clr digunakan.

Saat menerapkan managed atau unmanagedpragma:

  • pragma Tambahkan fungsi sebelumnya, tetapi tidak dalam isi fungsi.

  • pragma Tambahkan pernyataan setelah#include. Jangan gunakan sebelum pernyataan apa pun #include .

Pengkompilasi mengabaikan managed dan unmanagedpragma jika /clr tidak digunakan dalam kompilasi.

Saat fungsi templat dibuat, pragma status saat templat ditentukan menentukan apakah templat dikelola atau tidak dikelola.

Untuk informasi selengkapnya, lihat Inisialisasi rakitan campuran.

Contoh

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

Baca juga

Arahan Pragma dan __pragma_Pragma kata kunci