怎样读写内存?

liuyan4794 2004-04-06 08:07:21
LONG lSize =934*1024*3
LPSTR pBuf=(LPSTR)::GlobalAlloc(GHND,lSize);
我怎样才能对pBuf指针指向的这块内存进行一个字节一个字节的读写?
...全文
74 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐鹦鹉 2004-04-06
  • 打赏
  • 举报
回复
BYTE *pByte = (BYTE*)GlobalLock(hGlobal);//要求先锁定内存
指针还是错误
--------------
怎么个错误法啊???
okbody 2004-04-06
  • 打赏
  • 举报
回复
LONG lSize =934*1024*3;
HGLOBAL hMem = ::GlobalAlloc(GHND,lSize);
LPSTR pBuf=(LPSTR)::GlobalLock(hMem);

//......* (pBuf+1) ...

::GlobalUnlock(hMem);
liuyan4794 2004-04-06
  • 打赏
  • 举报
回复
BYTE *pByte = (BYTE*)GlobalLock(hGlobal);//要求先锁定内存
指针还是错误
ymbymb 2004-04-06
  • 打赏
  • 举报
回复
LONG lSize =934*1024*3;
PBYTE pData = new BYTE[lSize];

for(LONG i = 0; i < lSize; i++)
pData[i] = i % 256;
快乐鹦鹉 2004-04-06
  • 打赏
  • 举报
回复
哦。对了,不应该分配空间的。
因该是:
HGLOBAL hGlobal = GlobalAlloc(GHND,lSize);
BYTE *pByte = (BYTE*)GlobalLock(hGlobal);//要求先锁定内存
然后将pByte作为字符数组就可以了。(也可以定义char * pByte)
读写完后,调用GlobalUnlock(hGlobal);
liuyan4794 2004-04-06
  • 打赏
  • 举报
回复
LONG lSize =934*1015*3 + sizeof(BITMAPINFOHEADER );
BYTE *pByte = new BYTE[lSize];
pByte 出现指针错误
快乐鹦鹉 2004-04-06
  • 打赏
  • 举报
回复
为什么不试试我说的方法呢?
liuyan4794 2004-04-06
  • 打赏
  • 举报
回复
pBuf++;
执行了一定的次数之后,内存地址对应的内存就不让我读写了
可能是pBuf对应的地址不是连续的,不能直接加1
快乐鹦鹉 2004-04-06
  • 打赏
  • 举报
回复
你这样写不好。因该是:
HGLOBAL hGlobal = GlobalAlloc(GHND,lSize);
BYTE *pByte = new BYTE[lSize];
pByte = (BYTE*)GlobalLock(hGlobal);//要求先锁定内存
然后将pByte作为字符数组就可以了。(也可以定义char * pByte)
读写完后,调用GlobalUnlock(hGlobal);
DoubleJiang 2004-04-06
  • 打赏
  • 举报
回复
pBuf已经指到内存了,直接读写就好了
char ch = *pBuf; // read
*pBuf = 'a'; // write
liuyan4794 2004-04-06
  • 打赏
  • 举报
回复
现在可以了
谢谢大家了
将ncdx98.fne放在易语言lib目录下 将ncdx98_static.lib放在易语言static_lib目录下 即可使用 virscan查毒链接:http://www.virscan.org/scan/bfb948a9c839be980a853d26cb762eb7 哈勃查毒链接:https://habo.qq.com/file/showdetail?md5=932b29e2ff7649962a672183cd12bf27&pk=ADwGZV1rB2MIPFs5 {ECF1A0B0-BF8B-1EFF-CBD8-ECD74EFCBCBB} Q群:133320211 欢迎反馈 BUG 易语言加载驱动误报正常 可上传在线查毒 如果有使用过之前版本支持库的朋友 建议安装支持库之前 Ctrl+a 屏蔽源码以后再安装 防止参数错乱 v2.3 18.11.3 添加 x64进程内存类 取内存属性 添加 x64进程内存类 置内存属性 添加 x64进程内存类 置为可写 添加 x64进程内存类 是否可写 v2.2 18.10.28 新增 x64进程内存类 64系统专用 删除多余判断 使用进程句柄操作 添加 x64进程内存类 申请内存 添加 x64进程内存类 释放内存 v2.1 18.10.13 修改 进程_是否64位 判断进程是否为64位进程,是64位进程返回真,否则返回假。 添加 读u文本型 添加 写u文本型 v2.0 18.10.11 完善了支持库参数详解 新增 搜索_模糊 支持通配符?? 搜索规则与OD相同,返回搜寻的内存地址数目 新增 再次搜索_模糊 支持通配符?? 搜索规则与OD相同,返回搜寻的内存地址数目 新增 搜索Ex_模糊 支持通配符?? 返回搜寻的内存地址 新增 再次搜索Ex_模糊 支持通配符?? 返回搜寻的内存地址 新增 特征码搜索2 支持通配符搜索 返回十六进制文本内存地址 新增 读二叉树 新增 读文本型Ex 新增 写文本型Ex 新增 读字节集Ex 新增 写字节集Ex 修改 读代码 如:"10007AFA8+50+14" 地址中允许带模块名(模块名要用尖括号括起来),如:+50+14 修改 写代码 修改 读文本型 支持Unicode 自动判断读取长度 修改 写文本型 支持Unicode v1.21 18.9.28 修正 进程_枚举模块x bug 修正 特征码搜索 bug 真正支持64程序搜索 修正 搜索 bug 真正支持64程序搜索 v1.2 18.9.24 新增 进程_枚举模块 支持64进程 需提升自身权限 新增 搜索Ex 返回文本地址 新增 再次搜索Ex 返回文本地址 v1.1 18.9.19 修改 进程_取模块地址32 可取出模块内存区域地址大小 新增 进程_取模块地址64Ex 可取出模块内存区域地址大小 新增 特征码搜索Ex 搜索模块 速度更快 只支持无驱动保护的游戏 v1.0 18.9.8

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧