所以我得到這個錯誤信息,有人可以幫助我,已經嘗試了很多谷歌的答案:P沒有工作。」「DELPHI:E2033類型的實際和正式的變量參數必須相同」「
CTRL + SHIFT +空間結果上ReadProcessMemory
**Parameters**
hProcess System.Cardinal
IpBaseAddress System.Pointer
IpBuffer System.Pointer
nSize System.Cardinal
IpNumberOfBytesRead System.Cardinal
**Returns**
System.Boolean
PTR功能:
Ptr Function: function Ptr(Value: Integer): Pointer;
變量
var
Form1: TForm1;
PH : THandle;
PID, ThID: DWORD;
H : THandle;
function Ptr(Value: Integer): Pointer;
功能
function LerInt(Address: Integer): Integer;
var
value:integer;
ler:dword;
begin
H := FindWindow(nil, 'Something Here :)');
ThID := GetWindowThreadProcessID(H, @PID);
PH := OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);
ReadProcessMemory(PH, Ptr(Address), @value, 4, ler); // THIS LINE
Result:=value;
end;
這意味着你把錯誤類型的參數放在這裏的函數之一(編譯器指向你的那個函數)。要點是:如果你有程序(i:Integer),你可以稱它爲傳遞字節,shortint,Word,Integer,編譯器會將你的參數轉換爲類型過程需要的參數。但是如果你有程序(var i:Integer),你必須傳遞STRICTLY Integer,而不是更多。所以,看看確切類型的參數並與你在這裏寫的內容進行比較。 –
如果您向我們提供了出現此錯誤的確切行以及我們不知道的變量類型H,ThID,PH,那麼很容易準確地回答這裏出現的錯誤。 Telepaths當然是在他們的路上,但請不要太依賴他們。 –
編譯器告訴你**完全**導致該問題的線,並且使用Code Insight(Ctrl + Shift +功能參數parens之間的空格)準確告訴您** **每個參數所需的數據類型。由於您不打算將錯誤的行號包含在內,或者指出哪一行是問題,請使用我剛剛給您提供的信息自行解決。 :-) IOW,你絕對沒有理由不爲我們確定具體的問題區域,因爲它正好在你面前的屏幕上。 –