当前位置:编程学习 > VB >>

请教,在VB6.0环境下如何对内存数据进行读写?

如题,在编程过程中需对读取指定位置的内存值,不知该怎么办呀?地址为0X42340000. 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了。

在程序中调用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呢?谢谢各位高手了!
引用 1 楼 Chen8013 的回复:
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了。

+1
引用 2 楼 sxfxmjw001 的回复:
在程序中调用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呢?谢谢各位高手了!

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
帮忙顶一下,求助点分
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,