Private Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Int32, ByVal lpBaseAddress As Int32, ByRef lpBuffer As Int32, ByVal nSize As` Int32, ByRef lpNumberOfBytesWritten As Int32) As Int32
Sub test()
Dim buffer(4096) As Int32
For i As Long = &H2A000000 To &H3A000000
ReadProcessMemory(hwnd, i, buffer, buffer.length, 0)
Next
End Sub
Error 1 Value of type '1-dimensional array of Integer' cannot be converted to 'Integer'. 这段代码让我花了超过1分钟来完成它。我的老师告诉我,“这就像你正在用teamviewer在计算机上编码,或者你正在将代码复制到计算机上并在上面编码,这样就更快了”。显然,第二个,他告诉我,我的代码就像第一个。有人告诉我如何加快速度吗?非常感谢
发布于 2013-11-19 17:10:55
使您的缓冲区大小更大一些,以便您一次复制更多的数据,然后迭代数据的本地副本,这应该要快得多。
你必须做实验,看看什么是理想的缓冲区.我不知道那可能是什么。
在您的API声明中尝试这样做:
Public Declare Function ReadProcessMemory Lib "KERNEL32" Alias "ReadProcessMemory" ( _
ByVal hProcess As Int32, _
ByVal BaseAddress As Int32, _
ByVal BUFFER As Byte(), _
ByVal Size As Int32, _
Optional ByRef SizeReturned As Int32 = Nothing) As Boolean然后,您可以使用这样的方法来调用它:
Dim buffer(4096) As Byte
For i As Long = &H2A000000 To &H3A000000
ReadProcessMemory(hwnd, i, buffer, buffer.Length)
Nexthttps://stackoverflow.com/questions/20077115
复制相似问题