__declspec

De RAD Studio
Aller à : navigation, rechercher

Remonter à Liste alphabétique des mots clés - Index

Catégorie

Modificateurs (C++), Extensions des mots clés, Spécificateurs de classe de stockage (C++)

Syntaxe

__declspec(<decl-modifier>)

Description

Utilisez le mot clé __declspec pour indiquer les attributs de classe de stockage pour une variable ou une fonction.

Le mot clé __declspec étend la syntaxe des attributs pour les modificateurs de classe de stockage afin que leur placement dans une instruction déclarative soit plus souple. Le mot clé __declspec et ses arguments peuvent apparaître n'importe où dans la liste du déclarateur, au contraire des anciens modificateurs qui ne pouvaient apparaître qu'immédiatement avant l'identificateur à modifier.

__export void f(void);                      // illegal
void __export f(void)                       // correct
void __declspec(dllexport) f(void);         // correct
__declspec(dllexport)void f(void);          // correct
class __declspec(dllexport) ClassName { }   // correct

Modificateurs

Directive Description Alternative
__declspec(allocate("SEGNAME")) Spécifie le segment dans lequel l'entité est allouée. #pragma codeseg
__declspec(delphiclass) Indique que cette classe dérive de TObject et doit être compatible Delphi et VCL.
__declspec(delphirecord) Indique que cette structure est un enregistrement Delphi (dans le code C++ généré automatiquement depuis le code Delphi).
__declspec(delphireturn) Spécifie que ce type doit être compatible VCL afin qu'il puisse être passé par valeur dans les appels de fonction.
__declspec(delphirtti) Indique que les informations RTTI de Delphi doivent être générées pour les membres publics ou publiés de cette classe.
__declspec(dllexport) Spécifie que cette entité doit être importée lors de la construction d'une bibliothèque partagée. _export, __export
__declspec(dllimport) Spécifie que cette entité doit être exportée lors de la construction d'une bibliothèque partagée. _import, __import
__declspec(dynamic) Spécifie que cette fonction est dynamique (similaire à virtual).
__declspec(naked) Spécifie que cette fonction ne doit pas comporter un code de prologue et d'épilogue.
__declspec(hidesbase) Spécifie que cette fonction membre n'a pas de relation vers les fonctions virtuelles de même nom dans une quelconque classe de base.
__declspec(noreturn) Spécifie que cette fonction n'a pas d'instruction return. #pragma noretval, Attribut C++11 noreturn
__declspec(nothrow) Spécifie que la fonction ne déclenche pas une exception.
__declspec(novtable) Spécifie que le code d'initialisation de la vtable de la classe ne doit pas être généré.
__declspec(package) Indique que cette définition de classe peut être compilée dans un package.
__declspec(pascalimplementation) Indique que cette classe est définie dans Delphi.
__declspec(property) Définit une propriété avec l'accès en lecture et / ou en écriture donné. __property
__declspec(selectany) Indique que ces données globales sont initialisées dans plusieurs fichiers source et que le code d'initialisation peut être sélectionné pour la définition.
__declspec(thread) Indique que cette entité est locale au thread (stockage local au thread). __thread
__declspec(uuid("ComObjectGUID")) Associe la classe avec un GUID (Globally Unique IDentifier).

Voir aussi