次の方法で共有


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

参照

関連項目

プラグマ ディレクティブと __Pragma キーワード