Есть 2 вопроса:
1)Почему вызов со структурой не работает?
2)Почему вызов без структуры выдает ошибку?
1)Почему вызов со структурой не работает?
2)Почему вызов без структуры выдает ошибку?
Код:
$PID = WinGetProcess("")
$open = DllCall("Kernel32.dll", "int", "OpenProcess", "int", 0x001F0FFF, "int", 1, "int", $PID)
$struct = DllStructCreate( _
"HWND hProcess;" & _
"ptr lpAddress;" & _
"ULONG_PTR dwSize;" & _
"DWORD flAllocationType;" & _
"DWORD flProtect;")
DllStructSetData($struct, 'hProcess', $open[0])
DllStructSetData($struct, 'lpAddress', 0)
DllStructSetData($struct, 'dwSize', 10)
DllStructSetData($struct, 'flAllocationType', 0x00001000)
DllStructSetData($struct, 'flProtect', 0x00400000)
$ptr = DllStructGetPtr($struct)
;$call = DllCall("Kernel32.dll", "ptr", "VirtualAllocEx", "ptr", $ptr)
$call = DllCall("Kernel32.dll", "ptr", "VirtualAllocEx", "HWND", $open[0], "ptr", 0, "ULONG_PTR", 10, "DWORD", 0x00001000, "DWORD", 0x00400000)
$error = DllCall("Kernel32.dll", "DWORD", "GetLastError")
MsgBox(0, '', $call[0] & @CRLF & $error[0])