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();
}