Поделиться через


managed, unmanaged

Включите управление на уровне функций для управляемого или неуправляемого как компилировать функции.

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

Заметки

/clr параметр компилятора предоставляет элемент управления уровня модуля для функции или компилировать как управляемый код или находится в автономном режиме.

Неуправляемая функция будет компилироваться для собственной платформы и выполнение этой части программы, будет передано собственный платформе средой CLR.

Функции компилировать как управляемое по умолчанию, если /clr используется.

Используйте следующие рекомендации при применении эти директивы pragma:

  • Добавьте pragma, предшествующие функцию, но не в теле функции.

  • Добавьте pragma после #include выписки (не используйте эти директивы pragma before #include выписки).

Компилятор игнорирует managed и unmanaged прагмы, если /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();
}
  
  

См. также

Ссылки

Директивы pragma и ключевое слово __Pragma