Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Указывает, что собственный тип должен иметь открытый доступ к сборке.
Синтаксис
#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