make_public
ネイティブ アセンブリの型はパブリック アクセシビリティが必要であることを示します。
#pragma make_public(type)
パラメーター
type はパブリック アセンブリのアクセシビリティが必要とする型の名前です。
解説
make_public は参照するネイティブ型で変更できない .h ファイルである場合に便利です。パブリック アセンブリ参照範囲の型でネイティブ型のパブリック関数の定義を使用する場合ネイティブ型がパブリック アセンブリのアクセシビリティを含んでいなければコンパイラは警告を発行します。
make_public はグローバル スコープで指定する必要がありソース・コード ファイルの最後に宣言された位置からのみ有効です。
プライベート ネイティブ型は暗黙的または明示的にの可能性があります。; 詳細については型の表示 を参照してください。
使用例
次の例では 2 ネイティブ構造体の定義を含む .h ファイルの内容になります。
// make_public_pragma.h
struct Native_Struct_1 { int i; };
struct Native_Struct_2 { int i; };
次の例ではパブリックなマネージ型のパブリック関数定義でネイティブ構造体を使用しようとした場合にパブリックな make_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
};