__declspec
Nach oben zu Schlüsselwörter alphabetisch - Index
Kategorie
Modifizierer (C++), Schlüsselwort-Erweiterungen, Speicherklassenspezifizierer (C++)
Inhaltsverzeichnis
Syntax
__declspec(<decl-modifier>)
Beschreibung
Mit dem Schlüsselwort __declspec werden die für eine Variable oder Funktion geeigneten Speicherklassenattribute angegeben.
Das Schlüsselwort __declspec erweitert die Attributsyntax für Speicherklassenmodifizierer, um deren flexiblere Platzierung in Deklarationsanweisungen zu erzielen. __declspec und seine Argumente können an beliebiger Stelle in der Deklaratorenliste erscheinen, im Gegensatz zu den Modifizierern alten Typs, die jeweils unmittelbar vor den zu modifizierenden Bezeichnern angegeben werden mussten.
__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
Modifizierer
Direktive | Beschreibung | Alternative |
---|---|---|
__declspec(allocate("SEGNAME")) | Gibt das Segment an, in dem die Entität zugewiesen ist. | #pragma codeseg |
__declspec(delphiclass) | Gibt an, dass diese Klasse von TObject abgeleitet ist und mit Delphi und der VCL kompatibel sein muss. | |
__declspec(delphirecord) | Gibt an, dass diese Struktur ein Delphi-Record ist (im C++-Code automatisch aus Delphi-Code generiert). | |
__declspec(delphireturn) | Gibt an, dass dieser Typ mit der VCL kompatibel sein muss, so dass er per Wert in Funktionsaufrufen übergeben werden kann. | |
__declspec(delphirtti) | Gibt an, dass für die public- oder published-Member dieser Klasse Delphi RTTI generiert werden muss. | |
__declspec(dllexport) | Gibt an, dass diese Entität beim Erzeugen einer gemeinsamen Bibliothek importiert werden muss. | _export, __export |
__declspec(dllimport) | Gibt an, dass diese Entität beim Erzeugen einer gemeinsamen Bibliothek exportiert werden muss. | _import, __import |
__declspec(dynamic) | Gibt an, dass diese Funktion dynamisch ist (ähnlich wie virtual). | |
__declspec(naked) | Gibt an, dass diese Funktion keinen Prolog- und Epilog-Code haben darf. | |
__declspec(hidesbase) | Gibt an, dass diese Member-Funktion keine Beziehung zu virtuellen Funktionen mit demselben Namen in den Basisklassen hat. | |
__declspec(noreturn) | Gibt an, dass diese Funktion nicht zurückkehrt. | #pragma noretval, C++11-Attribut noreturn |
__declspec(nothrow) | Gibt an, dass diese Funktion keine Exception auslöst. | |
__declspec(novtable) | Gibt an, dass der Code zur Initialisierung der V-Tabelle der Klasse nicht erzeugt werden soll. | |
__declspec(package) | Gibt an, dass diese Klassendefinition in ein Package compiliert werden kann. | |
__declspec(pascalimplementation) | Gibt an, dass diese Klasse in Delphi definiert ist. | |
__declspec(property) | Definiert eine Eigenschaft mit dem gegebenen Lese- und/oder Schreibzugriff. | __property |
__declspec(selectany) | Gibt an, dass diese globalen Daten in mehr als einer Quelldatei initialisiert sind und dass für die Definition ein beliebiger Initialisierungscode ausgewählt werden kann. | |
__declspec(thread) | Gibt an, dass diese Entität für den Thread lokal ist (thread-lokaler Speicher). | __thread |
__declspec(uuid("ComObjectGUID")) | Ordnet einer Klasse einen global eindeutigen Bezeichner (GUID) zu. |