managed
и unmanaged
pragma.
Включите элемент управления уровня функций для компиляции функций как управляемых или неуправляемых.
Синтаксис
#pragma managed
#pragma unmanaged
#pragma managed(
[push,
] {on
|off
})
#pragma managed(pop)
Замечания
Параметр /clr
компилятора предоставляет управление уровнем модуля для функций компиляции как управляемых, так и неуправляемых.
Неуправляемая функция компилируется для собственной платформы. Выполнение этой части программы передается на собственную платформу средой CLR.
При использовании параметра /clr
по умолчанию функции компилируются как управляемые.
При применении или managed
unmanaged
pragma:
Добавьте предыдущую pragma функцию, но не в тексте функции.
Добавьте инструкции pragma after
#include
. Не используйте его до каких-либо#include
инструкций.
Компилятор игнорирует и managed
unmanaged
pragma , если /clr
в компиляции не используется.
При создании экземпляра функции шаблона состояние при определении шаблона определяет, pragma управляется ли он или неуправляем.
Дополнительные сведения см. в разделе инициализация смешанных сборок.
Пример
// 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.