Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Cria uma seção em um arquivo OBJ.
Sintaxe
#pragma section( "nome"da seção,[ atributos ])
Comentários
Os termos segmento e seção têm o mesmo significado neste artigo.
Quando uma seção é definida, ela permanece válida pelo restante da compilação. Porém, você deve usar __declspec(allocate), ou não será colocado nada na seção.
O nome da seção é um parâmetro obrigatório que será o nome da seção. O nome não deve estar em conflito com os nomes de seção padrão. Consulte /SECTION para obter uma lista de nomes que não devem ser usados ao criar uma seção.
atributos é um parâmetro opcional que consiste em um ou mais atributos separados por vírgulas que você deseja atribuir à seção. Os atributos possíveis são:
| Atributo | Descrição |
|---|---|
read |
Permite operações de leitura em dados. |
write |
Permite operações de gravação em dados. |
execute |
Permite que o código seja executado. |
shared |
Compartilha a seção entre todos os processos que carregam a imagem. |
nopage |
Marca a seção como não paginável. Útil para drivers de dispositivo Win32. |
nocache |
Marca a seção como não pode ser armazenada em cache. Útil para drivers de dispositivo Win32. |
discard |
Marca a seção como não descartável. Útil para drivers de dispositivo Win32. |
remove |
Marca a seção como não residente na memória. Somente para drivers de dispositivo virtual (VxD). |
Se não especificar nenhum atributo, a seção terá os atributos read e write.
Exemplo
Nesse exemplo, a primeira seção pragma identifica a seção e seus atributos. O inteiro j não é colocado em mysec porque não foi declarado usando __declspec(allocate). Em vez disso, j entra na seção de dados. O inteiro i entra em mysec por causa do atributo de classe de armazenamento __declspec(allocate).
// pragma_section.cpp
#pragma section("mysec",read,write)
int j = 0;
__declspec(allocate("mysec"))
int i = 0;
int main(){}