Compartilhar via


make_public

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

#pragma make_public(type)

Parâmetros

typeé o nome do tipo que você deseja ter acessibilidade pública do assembly.

Comentários

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

make_publicdeve ser especificado no escopo global e tem efeito somente do ponto em que ela é declarada por meio de até o final do arquivo de código de origem.

O tipo nativo pode ser particular implicitamente ou explicitamente; consulte Visibilidade de tipo para obter mais informações.

Exemplo

O exemplo a seguir é o conteúdo de um arquivo. h que contém as definições para duas 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 e mostra que, a menos que você explicitamente marca o structs nativo como pública, usando make_public, o compilador gerará um aviso quando você tenta usar o structs nativo na assinatura de 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
};

Consulte também

Referência

Diretivas pragma e __Pragma palavra-chave