/ BASE (endereço de Base)
/BASE:{address[,size] | @filename,key}
A opção de /BASE conjuntos de arquivos de um endereço base para o programa, substituindo o local padrão para um. exe (no 0x400000) ou uma DLL (com 0x10000000). O sistema operacional primeiro tenta carregar um programa no seu especificado ou o endereço de base padrão. Se o espaço suficiente não estiver disponível, o sistema realoca o programa. Para evitar a realocação, use o /FIXED opção.
O vinculador emitirá um erro se endereço não é um múltiplo de 64K. Opcionalmente, você pode especificar o tamanho do programa, para que o vinculador avisará se o programa não pode ajustar o tamanho especificado.
Na linha de comando, outra maneira de especificar o endereço base está usando o nome de arquivo precedido por uma arroba (@) e um key no arquivo. O nome de arquivo é um arquivo de texto que contém os locais e os tamanhos de todas as DLLs que usará o seu programa. O vinculador procura nome de arquivo no caminho especificado ou, se nenhum caminho for especificado, nos diretórios especificados na variável de ambiente LIB. Cada linha no nome de arquivo representa uma DLL e tem a seguinte sintaxe:
key address [size] ;comment
O key é uma seqüência de caracteres alfanuméricos e é o caso, não sensível. Geralmente é o nome de uma DLL, mas ele não precisa ser. O key seguido de uma base de endereço em notação decimal, hexadecimal ou de linguagem c e um máximo de opcional size. Todos os três argumentos são separados por espaços ou tabulações. O vinculador emitirá um aviso se o especificado size é menor do que o espaço de endereço virtual exigido pelo programa. A comment é especificado por um ponto e vírgula (;) e pode ser o mesmo ou uma linha separada. O vinculador ignora todo o texto da vírgula no final da linha. Este exemplo mostra parte de um 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 de DLLs. txt, o comando de exemplo a seguir se aplica a essas informações:
link dlltwo.obj /dll /base:@dlls.txt,two
Comentários
Você pode reduzir a paginação e melhorar o desempenho do seu programa, atribuindo endereços base para que não se sobreponham DLLs no espaço de endereço.
Outra maneira de definir o endereço base é com o BASE argumento em uma nome ou biblioteca instrução. A /BASE e /DLL opções juntas são equivalentes do biblioteca instrução.
Para definir esta opção de vinculador no ambiente de desenvolvimento Visual Studio
Abra o projeto Property Pages caixa de diálogo. Para obter detalhes, consulte Definindo propriedades de projeto Visual C++.
Clique o vinculador pasta.
Clique o Advanced página de propriedades.
Modificar o Endereço Base propriedade.
Para definir esta opção de vinculador programaticamente
- Consulte BaseAddress.