/SECTION (указание атрибутов секции)

/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

Write

Допускаются операции записи данных

S

Shared

Секция совместно используется всеми процессами, загружающими образ

D

Выгружаемая

Секция помечается как выгружаемая

K

Кэшируемая

Секция помечается как некэшируемая

P

Со страничной организацией

Секция помечается как секция без страничной организации

Символы K и P отличаются от остальных: соответствующие им флаги секции имеют обратный смысл.Если один из них указан в секции .text (/SECTION:.text,K), то при выполнении DUMPBIN с параметром /HEADERS разницы во флагах секции не будет, поскольку секция уже кэширована неявно.Чтобы удалить эту установку по умолчанию, следует указать параметр /SECTION:.text,!K; тогда программа DUMPBIN будет использовать характеристики раздела, включая характеристику "Некэшируемая".

Секция в PE-файле, для которой не установлен атрибут E, R или W, вероятно, является недопустимой.

С помощью параметра ALIGN*=#* можно задать значение выравнивания для конкретной секции.Дополнительные сведения см. в разделе /ALIGN.

Установка данного параметра компоновщика в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта.Дополнительные сведения см. в разделе Задание свойств проекта C++.

  2. Выберите папку Компоновщик.

  3. Выберите страницу свойств Командная строка.

  4. Введите параметр в поле Дополнительные параметры.

Установка данного параметра компоновщика программным способом

  • Дополнительные сведения см. в разделе AdditionalOptions.

См. также

Ссылки

Настройка параметров компоновщика

Параметры компоновщика