/SECTION (указание атрибутов секции)
Обновлен: Ноябрь 2007
/SECTION:name,[[!]{DEKPRSW}][,ALIGN=#]
Заметки
Параметр /SECTION изменяет атрибуты секции, переопределяя атрибуты, установленные во время компиляции файла OBJ, в котором находится эта секция.
Секции в переносимых исполняемых файлах (PE) в общих чертах подобны сегментам или ресурсам в новых исполняемых файлах (NE). Секции содержат код или данные. В отличие от сегментов секции представляют собой блоки непрерывной памяти без ограничения размеров. Некоторые секции содержат код или данные, объявляемые и используемые программой непосредственно, тогда как другие секции данных создаются компоновщиком и диспетчером библиотек (lib.exe) и содержат сведения, необходимые для операционной системы. Дополнительные сведения о NE-файлах см. в статье базы знаний "Формат заголовка исполняемого файла" (Q65122). Статьи базы знаний можно найти в библиотеке MSDN или с помощью веб-узла https://support.microsoft.com/.
Перед именем name секции следует указывать двоеточие (":"). Имя name задается с учетом регистра.
Не следует использовать имена, список которых приведен ниже, поскольку они конфликтуют со стандартными именами. Например, имя .sdata используется на платформах RISC.
.arch;
.bss;
.data;
.edata;
.idata;
.pdata;
.rdata;
.reloc;
.rsrc;
.sbss;
.sdata;
.srdata;
.text;
.xdata
Для секции можно задать один или несколько атрибутов. Знаки атрибутов, приведенные ниже, нечувствительны к регистру. Следует задавать все атрибуты, которые должна иметь секция; если какой-либо знак атрибута не указан, то его бит будет отключен. Если не указан атрибут R, W или E, то существующее состояние чтения, записи или исполнения остается неизмененным.
Чтобы инвертировать атрибут, укажите перед его символом восклицательный знак ("!"). Значения знаков атрибутов приведены в следующей таблице.
Знак |
Атрибут |
Значение |
---|---|---|
E |
Исполняемая |
Секция является исполняемой |
R |
Чтение |
Допускаются операции чтения данных |
W |
Запись |
Допускаются операции записи данных |
S |
Совместно используемая |
Секция совместно используется всеми процессами, загружающими образ |
D |
Выгружаемая |
Секция помечается как выгружаемая |
K |
Кэшируемая |
Секция помечается как некэшируемая |
P |
Со страничной организацией |
Секция помечается как секция без страничной организации |
Символы K и P отличаются от остальных: соответствующие им флаги секции имеют обратный смысл. Если один из них указан в секции .text (/SECTION:.text,K), то при выполнении DUMPBIN с параметром /HEADERS разницы во флагах секции не будет, поскольку секция уже кэширована неявно. Чтобы удалить эту установку по умолчанию, следует указать параметр /SECTION:.text,!K; тогда программа DUMPBIN будет использовать характеристики раздела, включая характеристику "Некэшируемая".
Секция в PE-файле, для которой не установлен атрибут E, R или W, вероятно, является недопустимой.
С помощью параметра ALIGN*=#* можно задать значение выравнивания для конкретной секции. Дополнительные сведения см. в разделе /ALIGN.
Установка данного параметра компоновщика в среде разработки Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Установка свойств проекта Visual C++.
Выберите папку Компоновщик.
Выберите страницу свойств Командная строка.
Введите параметр в поле Дополнительные параметры.
Установка данного параметра компоновщика программным способом
- См. раздел AdditionalOptions.