获取字符串地址中的16进制内容

bm425 2013-06-03 11:55:11

我想获取红色框圈起来的内容,把这部分内容存入字符串中
...全文
85 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ccrun.com 2013-06-03
好像理解错楼主的需求了. 换一段代码:
byte *p = (byte *)0x07BC0074;
char sz[320], c[3];
memset(sz, 0x0, sizeof(sz));
memset(c, 0x0, sizeof(c));
for (int i = 0; i < 150; i++)
{
    BinToHex(p++, c, 1);
    strcat(sz, c);
}

ShowMessage(sz);
回复
ccrun.com 2013-06-03
红框圈起来的数据中有很多0x00的数据, 这是存不到字符串中去的.
byte *p = (byte *)0x07BC0074;
byte bt[200];
memset(&bt, 0x0, sizeof(bt));
memcpy(bt, p, 150);


然后数据就存在bt里面了.

补充一下: 由于是直接读内存, 不保证不AV.
回复
缘中人 2013-06-03
你是用什么方法读的,是char *还是 string
回复
bm425 2013-06-03
各位大神,有没有好的办法啊! 急啊!急啊!
回复
ccrun.com 2013-06-03
三个字: 必须的.
回复
bm425 2013-06-03
程序可以使用,获取内容成功了。
回复
bm425 2013-06-03
我就是没有想到使用byte
回复
bm425 2013-06-03
高手就是高手啊! 谢谢了! 方法很有用
回复
ccrun.com 2013-06-03
那肯定是有办法啊. 这是多大个事, 还以为抢鸡蛋呢.
#include <stdio.h>

byte *p = (byte *)0x07BC0074;
char sz[320], c[3];
memset(sz, 0x0, sizeof(sz));
memset(c, 0x0, sizeof(c));
for (int i = 0; i < 150; i++)
{
    sprintf(c, "%02X", *p++);
    strcat(sz, c);
}
回复
bm425 2013-06-03
有没有办法啊
回复
bm425 2013-06-03
肯定是想使用存SDK来解决了
回复
ccrun.com 2013-06-03
引用 6 楼 bm425 的回复:
BinToHex(p++, c, 1); 是什么函数啊?
是VCL中的函数,你想用纯SDK来解决么?
回复
bm425 2013-06-03
BinToHex(p++, c, 1); 是什么函数啊?
回复
bm425 2013-06-03
我使用的是char*
回复
相关推荐
发帖
C++ Builder
创建于2007-08-02

1.3w+

社区成员

C++ Builder相关内容讨论区
申请成为版主
帖子事件
创建了帖子
2013-06-03 11:55
社区公告
暂无公告