make_public
pragma
指示本机类型应具有公共程序集可访问性。
语法
#pragma make_public(
类型)
参数
type
要具有公共程序集可访问性的类型的名称。
备注
如果要引用的本机类型来自无法更改的头文件,则 make_public
很有用。 若要在带有公共程序集可见性的类型中使用公共函数签名中的本机类型,则本机类型还必须具有公共程序集可访问性,否则编译器将发出警告。
make_public
必须在全局范围内指定。 它仅在从声明它的位置到源代码文件的结尾有效。
可隐式或显式地将本机类型设为专用。 有关详细信息,请参阅类型可见性。
示例
以下示例是包含两个本机结构的定义的头文件的内容。
// 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
};