make_public

Indique qu'un type natif doit avoir un accès public d'assembly.

#pragma make_public(type)

Paramètres

type est le nom du type que vous souhaitez avoir un accès public d'assembly.

Notes

make_public est utile lorsque le type natif que vous souhaitez référencer provient d'un fichier .h que vous ne pouvez pas modifier.Si vous souhaitez utiliser le type natif dans la signature d'une fonction publique dans un type avec une visibilité publique de l'assembly, le type natif doit également avoir un accès public d'assembly ou le compilateur émet un avertissement.

make_public doit être spécifié au niveau de la portée globale et est uniquement en effet du point auquel il est déclaré à la fin de le fichier de code source.

le type natif peut être implicitement ou explicitement privé ; consultez Type de visibilité pour plus d'informations.

Exemple

L'exemple suivant est le contenu d'un fichier .h qui contient les définitions de deux structures natifs.

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

L'exemple de code suivant utilise le fichier d'en-tête et indique qu'à moins que vous avez marqué explicitement les structs natifs comme le public, à l'aide de make_public, le compilateur génère un avertissement lorsque vous tentez d'utiliser les structs natifs dans la signature de la fonction publique dans un type managé 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
};

Voir aussi

Référence

Directives pragma et le mot clé de __Pragma