(w)winmain的hinstanceexe引數實際值是乙個記憶體基位址;系統將可執行檔案的映像載入到程序位址空間中的這個位置。例如,系統開啟可執行檔案,並將它載入到位址0x00400000,則(w)winmain的hinstanceexe引數值為0x00400000.
為了知道乙個可執行檔案或dll檔案被載入到程序位址空間的什麼位置,可以使用getmodulehandle函式來返回乙個控制代碼/基位址
view plain
hmodule
getmodulehandle(
pctstr
pszmodule)
呼叫這個函式是,要傳遞乙個以0為終止字元的字串,它指定了已在主調程序的位址空間中載入的乙個可執行檔案或dll檔案的名稱。如果系統找到了可執行檔案或dll檔名稱,getmodulehandle就會返回可執行檔案/dll檔案映像載入到基位址。如果沒有找到檔案,系統將返回null。
getmodulehandle的另乙個用法是為pszmodule引數傳入null,這樣就可以返回主調程序模組的基位址。如果我們的**在乙個dll中,那麼可利用兩種方法來了解**正在什麼模組中執行。第乙個辦法是利用鏈結器提供的偽變數__imagebase,它指向當前正在執行的模組的基位址。這是c語言執行庫啟動**在呼叫我們的(w)winmain函式時所做的事情。
第二種方法是呼叫getmoudlehandleex,將get_module_handle_ex_flag_from_address作為它的第乙個引數,將當前函式的位址作為第二個引數。最後乙個引數是乙個指向hmodule的指標,getmodulehandleex會用傳入函式(即第二個引數)所在dll的基位址來填寫該指標。以下**對這幾種方法進行演示。
view plain
extern
"c"const
image_dos_header __imagebase;
void
dumpmodule()
int_tmain(
intargc, _tchar* argv)
如何獲得當前執行模組在程序位址空間的位置
w winmain的hinstanceexe引數實際值是乙個記憶體基位址 系統將可執行檔案的映像載入到程序位址空間中的這個位置。例如,系統開啟可執行檔案,並將它載入到位址0x00400000,則 w winmain的hinstanceexe引數值為0x00400000.為了知道乙個可執行檔案或dll...
如何獲得當前執行模組在程序位址空間的位置
w winmain的hinstanceexe引數實際值是乙個記憶體基位址 系統將可執行檔案的映像載入到程序位址空間中的這個位置。例如,系統開啟可執行檔案,並將它載入到位址0x00400000,則 w winmain的hinstanceexe引數值為0x00400000.為了知道乙個可執行檔案或dll...
定位獲得當前位址
定位大概步奏 1.通過gps獲ip位址獲得當前移動裝置的經緯度。主要 public void registerlocationlistener private class mylocationlistener implements locationlistener else else 移除基於loc...