VVB6.0的ReadProcessMemory到了VB.NET咋就用不了了?该如何处理
VVB6.0的ReadProcessMemory到了VB.NET咋就用不了了?
Public Declare Function ReadProcessMemory Lib "kernel32 " (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByVal lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If hProcess Then
Dim chongfh As Long
ReadProcessMemory(hProcess, &HAEBC280, chongfh, 4, 0&)
Label1.Text = CStr(h)
CloseHandle hProcess
End if
-------------------------------
在VB6.0上就能用的。。到了VB.NET怎么就用不了了啊。。。
------解决方案--------------------
ByVal lpBuffer As Integer ???
Public Declare Function ReadProcessMemory Lib "kernel32 " (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, lpBuffer() As Byte, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
Dim lpBuffer() as Byte
ReDim lpBuffer(3)
Dim nSize = 4
ReadProcessMemory(hProcess, &HAEBC280, lpBuffer, nSize, 0&)
至于那个 Base Address 对不对,我就不知道了
------解决方案--------------------
其中有关指针的定义,好象不应该是Integer 而是Intptr
Public Declare Function ReadProcessMemory Lib "kernel32 " (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByVal lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If hProcess Then
Dim chongfh As Long
ReadProcessMemory(hProcess, &HAEBC280, chongfh, 4, 0&)
Label1.Text = CStr(h)
CloseHandle hProcess
End if
-------------------------------
在VB6.0上就能用的。。到了VB.NET怎么就用不了了啊。。。
------解决方案--------------------
ByVal lpBuffer As Integer ???
Public Declare Function ReadProcessMemory Lib "kernel32 " (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, lpBuffer() As Byte, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
Dim lpBuffer() as Byte
ReDim lpBuffer(3)
Dim nSize = 4
ReadProcessMemory(hProcess, &HAEBC280, lpBuffer, nSize, 0&)
至于那个 Base Address 对不对,我就不知道了
------解决方案--------------------
其中有关指针的定义,好象不应该是Integer 而是Intptr