許多VB開發(fā)者都知道應(yīng)該在工程屬性對(duì)話框的“編譯”功能頁(yè)面中定義一個(gè)DLL基地址數(shù)值。這不同于工程中任何其他DLL或OCX的基地址。
當(dāng)操作沒有源代碼的編譯DLL或者OCX文件時(shí),可以使用EDITBIN程序修改它的基地址。EDITBIN程序隨Visual Studio安裝后就有了,可以在主Visual Studio目錄的VC98\BIN目錄下找到它。比如,以下代碼重新設(shè)定一個(gè)編譯DLL文件的基地址為12000000(16進(jìn)制):
EDITBIN /REBASE:BASE=0x12000000 myfile.dll
同樣,EDITBIN程序?qū)蓤?zhí)行文件也有一些處理技巧。
以下是該程序支持的完整功能選項(xiàng)列表(使用EDITBIN /? 可以列出這些):
/BIND[:PATH=path]
/HEAP:reserve[,commit]
/LARGEADDRESSAWARE[:NO]
/NOLOGO
/REBASE[:[BASE=address][,BASEFILE][,DOWN]]
/RELEASE
/SECTION:name[=newname][,[[!]{cdeikomprsuw}][a{1248ptsx}]]
/STACK:reserve[,commit]
/SUBSYSTEM:{NATIVE|Windows|CONSOLE|WINDOWSCE|POSIX}[,#[.##]]
/SWAPRUN:{[!]CD|[!]NET}
/VERSION:#[.#]
/WS:[!]AGGRESSIVE
當(dāng)操作沒有源代碼的編譯DLL或者OCX文件時(shí),可以使用EDITBIN程序修改它的基地址。EDITBIN程序隨Visual Studio安裝后就有了,可以在主Visual Studio目錄的VC98\BIN目錄下找到它。比如,以下代碼重新設(shè)定一個(gè)編譯DLL文件的基地址為12000000(16進(jìn)制):
EDITBIN /REBASE:BASE=0x12000000 myfile.dll
同樣,EDITBIN程序?qū)蓤?zhí)行文件也有一些處理技巧。
以下是該程序支持的完整功能選項(xiàng)列表(使用EDITBIN /? 可以列出這些):
/BIND[:PATH=path]
/HEAP:reserve[,commit]
/LARGEADDRESSAWARE[:NO]
/NOLOGO
/REBASE[:[BASE=address][,BASEFILE][,DOWN]]
/RELEASE
/SECTION:name[=newname][,[[!]{cdeikomprsuw}][a{1248ptsx}]]
/STACK:reserve[,commit]
/SUBSYSTEM:{NATIVE|Windows|CONSOLE|WINDOWSCE|POSIX}[,#[.##]]
/SWAPRUN:{[!]CD|[!]NET}
/VERSION:#[.#]
/WS:[!]AGGRESSIVE