Compartilhar via


/BASE (endereço básico)

/BASE:{address[,size] | @filename,key}

As opções definidas de /BASE um endereço de base para o programa, substituindo o local padrão para um arquivo .exe (em 0x400000) ou uma DLL (em 0x10000000). O sistema operacional primeiro tentar carregar um programa em seu endereço base especificado ou padrão. Se o espaço suficiente não está disponível nela, o sistema realoca o programa. Para evitar a realocação, use a opção de /FIXED .

O vinculador emite um erro se o endereço não for um múltiplo de 64K. Você pode opcionalmente especificar o tamanho de programa, assim que o vinculador advertirá se o programa não puder se ajustar no tamanho especificado.

Na linha de comando, outra maneira de especificar o endereço base é usando o nome de arquivo precedido por um sinal de arroba (@), e por key no arquivo. O nome de arquivo é um arquivo de texto que contém os locais e os tamanhos de todas as dlls seu programa usam. O vinculador procura o nome de arquivo no caminho especificado ou, se nenhum caminho for especificado, nos diretórios especificados na variável de ambiente de LIB. Cada linha no nome de arquivo representa uma DLL e tem a seguinte sintaxe:

key address [size] ;comment

key é uma cadeia de caracteres de caracteres alfanuméricos e não diferencia maiúsculas de minúsculas. O é normalmente o nome de uma DLL, mas não precisa ser. key é seguido por um endereço base em C - idioma, notação hexadecimal ou decimal, e sizemáximo opcional. Todos os três argumentos são separados por espaços ou com guias. O vinculador emite um aviso se size especificado for menor do que o espaço de endereço virtual exigido pelo programa. comment é especificado por um ponto-e-vírgula (;) e pode estar na mesma tabela ou em uma linha separada. O vinculador ignora qualquer texto do ponto-e-vírgula ao final da linha. Este exemplo mostra a parte desse arquivo:

main   0x00010000    0x08000000    ; for PROJECT.exe
one    0x28000000    0x00100000    ; for DLLONE.DLL
two    0x28100000    0x00300000    ; for DLLTWO.DLL

Se o arquivo que contém essas linhas é chamado DLLS.txt, o seguinte comando de exemplo aplica essas informações:

link dlltwo.obj /dll /base:@dlls.txt,two

Comentários

Você pode reduzir a página e melhorar o desempenho de seu programa atribuindo endereços de base de forma que as dlls não se sobrepõem no espaço de endereço.

Outra maneira de definir o endereço base é com o argumento OU BASE em uma instrução de NAME ou de BIBLIOTECA . As opções de /BASE e de /DLL são adjacentes equivalentes à instrução de BIBLIOTECA .

Para definir esta opção do vinculador no ambiente de desenvolvimento do Visual Studio

  1. Abra a caixa de diálogo Páginas de Propriedade do projeto. Para obter detalhes, consulte Configurando as propriedades de projeto do Visual C++.

  2. Clique na pasta Vinculador.

  3. Clique na página de propriedades de Avançado .

  4. Modifique a propriedade de Endereço Básico .

Para definir essa opção de vinculador por meio de programação

Consulte também

Referência

Definindo opções de vinculador

Opções de vinculador