網絡上搜集的一些信息:
THandle的定義已經是一個指針而不是像原來的 THandle = Cardinal了; "j] r
所以 =!Ce#p?h,
ReadProcessMemory(PHandle,Pinteger(FirstADD),FirstADDZ,nSize,lpNumberOfBytesRead); ds|L'7
第一個參數不能是 THandle無類型指針, PHandle仍然是 Cardinal無符號整型;第三個參數是個指針類型需要用@取變量地。所以應該這樣 t,>j{SK~
var .W1i3Z6g
lpNumberOfBytesRead: THandle; \CDzVO0^
FirstADDZ, PHandle, FirstADD: Cardinal; JMIS*njq^
ReadProcessMemory(PHandle, Pointer(FirstADD), @FirstADDZ, 4, lpNumberOfBytesRead); 雖然已經在目錄下看不到他的源碼了,但鼠標放在上面會有提示的啊,還有多看看編譯提示的錯誤!!!
SiteNum: DWord;
lByte: Size_T; //這裏可以定義爲thandle
begin
Gameh := FindWindow(nil, 'QQ遊戲');
showmessage(inttostr(Gameh));
GetWindowThreadProcessID(Gameh, Gamepid);
GameProcess := OpenProcess(Process_VM_Read or Process_VM_Write , False, Gamepid);
lByte := 0;
ReadProcessMemory(GameProcess, Pointer($0180017A), @SiteNum, 4, lByte);
//Edit1.Text := inttostr(SiteNum);
end;