다음을 통해 공유


managed, unmanaged

관리 되거나 관리 되지 않는 함수로 컴파일 함수 수준 제어를 사용 합니다.

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

설명

해당 /clr 컴파일러 옵션은 관리 되거나 관리 되지 않는 함수를 컴파일할 모듈 수준 제어를 제공 합니다.

관리 되지 않는 함수는 네이티브 플랫폼에 대 한 컴파일하고 공용 언어 런타임에 의해 실행 프로그램에서 해당 부분을 기본 플랫폼으로 전달 됩니다.

기본적으로 관리 되는 함수 컴파일됩니다 때 /clr 사용 됩니다.

이러한 pragma를 적용할 때는 다음 지침을 따르십시오.

  • 이 pragma는 함수 앞에 추가 함수 본문 내에서 없습니다.

  • Pragma 뒤에 추가 #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();
}
  
  

참고 항목

참조

Pragma 지시문과 __Pragma 키워드