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
};
См. также
директивы Pragma и ключевые слова __pragma
и _Pragma