make_public
pragma
表示原生類型應該具有公用組件存取範圍。
語法
#pragma make_public(
type)
參數
type
您想要具有公用元件協助工具的型別名稱。
備註
make_public
當您想要參考的原生類型來自無法變更的標頭檔時,會很有用。 如果您想要在具有公用元件可見度之型別的公用函式簽章中使用原生型別,原生類型也必須具有公用元件協助工具,否則編譯器會發出警告。
make_public
必須在全域範圍指定。 它只會從宣告到原始程式碼檔結尾的點生效。
原生類型可能是隱含或明確私用的。 如需詳細資訊,請參閱 類型可見度 。
範例
下列範例是標頭檔的內容,其中包含兩個原生結構的定義。
// make_public_pragma.h
struct Native_Struct_1 { int i; };
struct Native_Struct_2 { int i; };
下列程式碼範例會取用標頭檔。 它會顯示,除非您使用 make_public
明確將原生結構標示為公用結構,否則當您嘗試在公用 Managed 型別的公用函式簽章中使用原生結構時,編譯器會產生警告。
// 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
};
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應