make_public
pragma
네이티브 형식이 공용 어셈블리 액세스 가능성을 갖도록 지정합니다.
구문
#pragma make_public(
형)
매개 변수
type
공용 어셈블리 접근성을 가질 형식의 이름입니다.
설명
make_public
는 참조하려는 네이티브 형식이 변경할 수 없는 헤더 파일에서 온 경우에 유용합니다. 공용 어셈블리 표시 유형이 있는 형식에서 public 함수의 서명에 네이티브 형식을 사용하려면 네이티브 형식에도 공용 어셈블리 접근성이 있어야 합니다. 그렇지 않으면 컴파일러에서 경고가 발생합니다.
make_public
은 전역 범위에서 지정해야 합니다. 소스 코드 파일의 끝까지 선언된 시점부터 적용됩니다.
네이티브 형식은 암시적 또는 명시적으로 비공개일 수 있습니다. 자세한 내용은 형식 표시 유형을 참조하세요.
예제
다음 샘플은 두 네이티브 구조체에 대한 정의를 포함하는 헤더 파일의 내용입니다.
// make_public_pragma.h
struct Native_Struct_1 { int i; };
struct Native_Struct_2 { int i; };
다음 코드 샘플에서는 헤더 파일을 사용합니다. 이를 통해 네이티브 구조체를 명시적으로 공용 make_public
으로 표시하지 않는 한 공용 관리형 형식의 public 함수 서명에서 네이티브 구조체를 사용하려고 할 때 컴파일러가 경고를 생성합니다.
// make_public_pragma.cpp
// compile with: /c /clr /W1
#pragma warning (default : 4692)
#include "make_public_pragma.h"
#pragma make_public(Native_Struct_1)
public ref struct A {
void Test(Native_Struct_1 u) {u.i = 0;} // OK
void Test(Native_Struct_2 u) {u.i = 0;} // C4692
};