各位大大,
請教一下以現在的版本來講我測試結果是0097B33C+20+494 hp
另外0097B33C+20+494我轉成10進位加起來再轉回16進位來看位置的值也不對怎麼會?
因為轉成VB.net 所以function有修改as any 改成 as long不知道會不會是資料型態問題any該轉成什麼呢?
查了msdn有寫'您可以將 Declare 取代為兩種版本,一種接受長整數,另一種接受字串,就可以移除 "As Any"'我的剛好也是其中一個
/*
Private Declare Function ReadProcessMemory Lib "kernel32.dll" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Long, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByRef lpBaseAddress As Long, ByRef lpBuffer As Long, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
*/
ReadProcessMemory hProcess, ByVal PW_Base, W2I_DYNAMIC_BASE_ADDR, 4, 0& '一級基址
動態基址是這樣來的嗎?動態基址不是0097B33C嗎?
另外用ce 0097B33C+20+494讀取結果是正常血量
但是vb ReadProcessMemory hProcess, ByVal &H97B33C + &H20 + &H494, hp, 4, 0& 讀出來的解果是0
訴呼ce抓到的質在vb中怎麼都不泰對呢,請問是哪裡出錯呢,
[ 本帖最後由 hardy.tsai 於 2009-5-24 10:00 編輯 ] |