make_public pragma

Indica que um tipo nativo deve ter a acessibilidade pública de assembly.

Sintaxe

#pragma make_public(tipo)

Parâmetros

tipo
O nome do tipo que você deseja que tenha acessibilidade do assembly público.

Comentários

make_public é útil quando o tipo nativo que você deseja referenciar é de um arquivo de cabeçalho que você não pode alterar. Se você desejar usar o tipo nativo na assinatura de uma função pública em um tipo com visibilidade pública de assembly, o tipo nativo também deve ter a acessibilidade pública do assembly. Caso contrário, o compilador emitirá um aviso.

make_public deve ser especificado no escopo global. Ele é aplicado apenas a partir do ponto em que é declarado até o final do arquivo de código-fonte.

O tipo nativo pode ser implicitamente ou explicitamente particular. Para obter mais informações, confira Visibilidade do tipo.

Exemplos

O exemplo a seguir é o conteúdo de um arquivo de cabeçalho que contém as definições para dois structs nativos.

// make_public_pragma.h
struct Native_Struct_1 { int i; };
struct Native_Struct_2 { int i; };

O exemplo de código a seguir consome o arquivo de cabeçalho. Ele mostra que, a menos que você marque explicitamente os structs nativos como públicas usando make_public, o compilador gerará um aviso quando você tentar usar os structs nativos na assinatura da função pública em um tipo gerenciado público.

// 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
};

Confira também

Diretivas do Pragma e as palavras-chave do __pragma e _Pragma