Ошибка говорит о том, что одна из переменных, которые вы передаете в качестве параметра, не имеет требуемого типа. Ошибка в параметре var
. Последний параметр для обеих этих функций - единственный параметр var, поэтому ясно, что Bytes
не является обязательным типом.
Решение состоит в том, чтобы Bytes
соответствовал типу, указанному в объявлении ReadProcessMemory
и WriteProcessMemory
. В XE2 этот тип SIZE_T
. Поэтому вам просто нужно изменить определение Bytes
на тип SIZE_T
.
Вот декларации XE2:
function ReadProcessMemory(hProcess: THandle; const lpBaseAddress: Pointer;
lpBuffer: Pointer; nSize: SIZE_T; var lpNumberOfBytesRead: SIZE_T): BOOL; stdcall;
function WriteProcessMemory(hProcess: THandle; const lpBaseAddress: Pointer;
lpBuffer: Pointer; nSize: SIZE_T; var lpNumberOfBytesWritten: SIZE_T): BOOL; stdcall;