make_public
pragma
Indique qu'un type natif doit disposer d'une accessibilité d'assembly public.
Syntaxe
#pragma make_public(
type)
Paramètres
type
Nom du type que vous souhaitez avoir l’accessibilité de l’assembly public.
Notes
make_public
est utile lorsque le type natif que vous souhaitez référence provient d’un fichier d’en-tête 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é d’assembly public, le type natif doit également avoir une accessibilité d’assembly public, ou le compilateur émet un avertissement.
make_public
doit être spécifié à l’étendue globale. Elle n’est appliquée qu’à partir du point auquel elle est déclarée jusqu’à la fin du fichier de code source.
Le type natif peut être implicitement ou explicitement privé. Pour plus d’informations, consultez Visibilité du type.
Exemples
L’exemple suivant est le contenu d’un fichier d’en-tête qui contient les définitions de deux structs 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. Cela montre que, sauf si vous marquez explicitement les structs natifs comme publics à l’aide make_public
de , 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
};