section
Erstellt einen Abschnitt in einer OBJ-Datei.
#pragma section( "section-name" [, attributes] )
Hinweise
Die Ausdrücke Segment und Abschnitt sind in diesem Thema gleichbedeutend.
Sobald ein Abschnitt definiert wurde, bleibt er für den Rest der Kompilierung gültig. Sie müssen jedoch __declspec(allocate) verwenden, da sonst nichts in den Abschnitt eingefügt wird.
section-name ist ein erforderlicher Parameter, der den Namen des Abschnitts darstellt. Der Name darf keinem Standard-Abschnittsnamen ähneln. Eine Liste der Namen, die Sie beim Erstellen eines Abschnitts nicht verwenden sollten, finden Sie unter /SECTION.
attributes ist ein optionaler Parameter, der aus einem oder mehreren durch Kommas getrennten Attributen besteht, die Sie dem Abschnitt zuweisen möchten. Mögliche attributes-Parameter sind:
read
Ermöglicht Lesevorgänge für Daten.write
Ermöglicht Schreibvorgänge für Daten.execute
Ermöglicht die Ausführung von Code.shared
Gibt den Abschnitt für alle Prozesse frei, die das Image laden.nopage
Markiert den Abschnitt als nicht auslagerbar; nützlich für Win32-Gerätetreiber.nocache
Markiert den Abschnitt als nicht zwischenspeicherbar; nützlich für Win32-Gerätetreiber.discard
Markiert den Abschnitt als entfernbar; nützlich für Win32-Gerätetreiber.remove
Markiert den Abschnitt als nicht speicherresident; nur virtuelle Gerätetreiber (VxD).
Wenn Sie keine Attribute angeben, enthält der Abschnitt Lese- und Schreibattribute.
Beispiel
Im folgenden Beispiel identifiziert die erste Anweisung den Abschnitt und seine Attribute. Die Ganzzahl j wird nicht in mysec eingefügt, da sie nicht mit __declspec(allocate) deklariert wurde. j wird in den Datenbereich eingefügt. Die Ganzzahl i wird aufgrund ihres __declspec(allocate)-Speicherklassenattributs in mysec eingefügt.
// pragma_section.cpp
#pragma section("mysec",read,write)
int j = 0;
__declspec(allocate("mysec"))
int i = 0;
int main(){}