managed
dan unmanaged
pragma
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 unmanaged
pragma:
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 unmanaged
pragma 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.