首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于ReadProcessMemory速度

关于ReadProcessMemory速度
EN

Stack Overflow用户
提问于 2013-11-19 16:42:25
回答 1查看 557关注 0票数 0
代码语言:javascript
复制
    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在计算机上编码,或者你正在将代码复制到计算机上并在上面编码,这样就更快了”。显然,第二个,他告诉我,我的代码就像第一个。有人告诉我如何加快速度吗?非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-19 17:10:55

使您的缓冲区大小更大一些,以便您一次复制更多的数据,然后迭代数据的本地副本,这应该要快得多。

你必须做实验,看看什么是理想的缓冲区.我不知道那可能是什么。

在您的API声明中尝试这样做:

代码语言:javascript
复制
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

然后,您可以使用这样的方法来调用它:

代码语言:javascript
复制
    Dim buffer(4096) As Byte
    For i As Long = &H2A000000 To &H3A000000
        ReadProcessMemory(hwnd, i, buffer, buffer.Length)
    Next
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20077115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档