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компилятор создаст предупреждение при попытке использовать собственные структуры в сигнатуре общедоступной функции в общедоступном управляемом типе.

// 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 ключевое слово