如題,在編程程序中需對讀取指定位置的記憶體值,不知該怎么辦呀?地址為0X42340000.
uj5u.com熱心網友回復:
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)dim aBuffer(31) as byte
call CopyMemory(abuffer(0), byval &H42340000, 27) '從地址為0x42340000的地方開始,讀取27位元組內容到aBuffer中
但我覺得你的 0x42340000 好象說的是“第三方”程式的吧?
如果是,就得用 ReadProcessMemory( )等另外幾個跨行程讀取的API了。
uj5u.com熱心網友回復:
在程式中呼叫Declare Function YaLiOne Lib "RBIC1_VB.dll" Alias "OutLin" (ByVal Zp1m As Single, ByVal Zp2m As Single, ByVal A As Single, ByVal B As Single, c0 As Long, c1 As Long) As Boolean;C原型為DLLDIR BOOL OutLin(float Zp1m, float Zp2m, float A, float B, float *C0, float *C1);怎樣在已知c0的ad=1110704128的前提下,得到c0的value呢?謝謝各位高手了!
uj5u.com熱心網友回復:
+1
uj5u.com熱心網友回復:
C/C++ 、Java等語言中的 float ,就是 VB 中的 Single 型別,即單精度浮點數,長度為4位元組。
照你說的這樣子,應該就是屬于“本行程”的記憶體地址了,就可以用 CopyMemory 來解決了啊。
API按我在 1F 中所寫的樣子,讀取代碼如下:
Dim vC0 As Single, vC1 As Single
CopyMemory vC0, ByVal 1110704128, 4
'這樣寫也一樣: 1110704128 = 0x42340000
'CopyMemory vC0, ByVal &H42340000, 4
' 如果 *C1 的值在Long變數 XXX 中,讀取 *C1 處的值:
CopyMemory vC1, ByVal XXX, 4
uj5u.com熱心網友回復:
幫忙頂一下,求助點分轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/133285.html
標籤:VB基礎類
上一篇:ActiveReport_PageStart寫法問題!!!
下一篇:VS2013 MFC 編程編譯錯誤:error C2039: “strcpy”: 不是“`global namespace'”的成員
