/BASE (Adres podstawowy)
/BASE:{address[,size] | @filename,key}
/BASE opcja ustawia adres bazowy programu, zastąpienie domyślnej lokalizacji .exe do pliku (w 0x400000) lub biblioteka DLL (w 0x10000000).System operacyjny najpierw próbuje załadować program w jego określonym lub domyślny adres bazowy.Jeśli nie dostępne jest tam wystarczająco dużo miejsca, system przenosi się program.Aby uniemożliwić przeniesienie, należy użyć /FIXED opcji.
Program łączący wygenerują błąd, jeśli adres nie jest wielokrotnością 64 KB. Można opcjonalnie określić rozmiar programu, więc program łączący wyświetli ostrzeżenie, jeśli program nie zmieści się w podany rozmiar.
W wierszu polecenia określ adres bazowy inny sposób polega na użyciu Nazwa pliku poprzedzone znakiem (@) i key do pliku.Nazwa pliku jest plikiem tekstowym zawierającym lokalizacje i rozmiary wszystkich plików dll Twój program użyje.Linker szuka Nazwa pliku w katalogu głównym lub, jeżeli nie określono ścieżki, w katalogach, określone w zmienna środowiskowa LIB.Każdy wiersz w Nazwa pliku reprezentuje jeden DLL i ma następującą składnię:
key address [size] ;comment
key Jest ciągiem znaków alfanumerycznych i nie jest uwzględniana wielkość liter.Zazwyczaj jest to nazwa biblioteki DLL, ale nie muszą być.key Następuje podkładzie adres w języku C, zapisie szesnastkowym czy dziesiętnym i opcjonalne maksymalnie size.Wszystkie trzy argumenty są oddzielane znaków tabulacji lub spacji.Program łączący wygeneruje ostrzeżenie, jeśli określony size jest mniejszy niż obszar adresów wirtualnych, wymagane przez program.A comment jest określony za pomocą średnika (;) i może być na tym samym lub osobnym wierszu.Program łączący ignoruje tekst po średniku do końca wiersza.W tym przykładzie przedstawiono część takiego pliku:
main 0x00010000 0x08000000 ; for PROJECT.exe
one 0x28000000 0x00100000 ; for DLLONE.DLL
two 0x28100000 0x00300000 ; for DLLTWO.DLL
Jeśli plik, który zawiera wiersze te nazywa się DLLS.txt, następujące polecenie przykładowe stosuje te informacje:
link dlltwo.obj /dll /base:@dlls.txt,two
Uwagi
Można zmniejszyć stronicowania i zwiększyć wydajność programu przez przypisywanie adresów bazowych, tak, że pliki dll nie pokrywają się w przestrzeni adresowej.
Innym sposobem ustawić adres bazowy jest z podstawowych argument w Nazwa lub biblioteki instrukcji./BASE i /dll opcje razem są równoważne z biblioteki instrukcji.
Aby ustawić opcję konsolidatora w środowisku programowania Visual Studio
Otwórz okno dialogowe Strony właściwości projektu.Aby uzyskać szczegółowe informacje, zobacz Konfigurowanie właściwości projektu programu Visual C++.
Kliknij folder Konsolidator.
Kliknij stronę właściwości Zaawansowane.
Modyfikowanie Adresu podstawowego właściwości.
Aby programowo ustawić opcję konsolidatora
- Zobacz BaseAddress.