如何将内存中的16进制转换为字符串(汉字或者英文)(高分 急 在线)

心雨楼 2007-06-30 10:27:04
内存中的数据都是16进制的

比如地址0X01DE98A8:D0C4D3EAC2A5

那我读到一个char mydata[6]

这个有可能是6个英文字母也有可能是3个汉字

如何转换?然后用AfxMessageBox(...) 显示出来呢?

谢谢!
...全文
3105 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
jpinglove 2007-11-22
  • 打赏
  • 举报
回复
呵呵学习了!
IT局 2007-07-03
  • 打赏
  • 举报
回复
1 char mydata[6];
...
AfxMessageBox(mydate)
就可以打到你的目的。
显示英文还是汉字操作系统会帮你做好。
2 如果是乱码,说明你的mydata内容不对。
不信你用:
char * str1="测试";
char * str2 = "test";
char * str3 = "测试test";
AfxMessageBox(str1);
AfxMessageBox(str2);
AfxMessageBox(str3);

不会有问题
morning550 2007-07-03
  • 打赏
  • 举报
回复
up
rulera 2007-07-02
  • 打赏
  • 举报
回复
up
hwkobeliulili 2007-07-02
  • 打赏
  • 举报
回复
请问:tufaqing()
怎么确定我的编程工具用的编码方式??
Juchiyufei 2007-07-02
  • 打赏
  • 举报
回复
上面的人已经说完了哈.
liuxiuk 2007-07-01
  • 打赏
  • 举报
回复
学习一手...
lyllirui 2007-07-01
  • 打赏
  • 举报
回复
这个问题存在本质上的提法错误
任何数据在内存中就只是数据而已
数据在计算机中间就是0或者1
是由你来(实际上也不是你,你也只是在操作系统的框架下工作)决定0101001到底代表什么
so。。。。。。
jasonshark 2007-06-30
  • 打赏
  • 举报
回复
好的,加了你QQ了,我这里上MSN经常掉
jasonshark 2007-06-30
  • 打赏
  • 举报
回复
You're welcome :)
It's great to hear that this really solve your problem~
心雨楼 2007-06-30
  • 打赏
  • 举报
回复
jasonshark(最后一个暑假了...)

有没有msn加我admin@blogjsd.com qq:44378250

最近要写一些c++的项目 可能有一些基础的问题搞不明白 哎
应用的东西都没什么
心雨楼 2007-06-30
  • 打赏
  • 举报
回复
To jasonshark(最后一个暑假了...)

Thanks in advance . my project going well .. . thanks again .
jasonshark 2007-06-30
  • 打赏
  • 举报
回复
那就是由于你工程是Unicode的了
需要用MultiByteToWideChar转换,帮你写一个吧
CHAR mydata[8] = "心雨楼";
WCHAR wszTemp[8] = {0};

MultiByteToWideChar(CP_ACP, MB_COMPOSITE, mydata, lstrlenA(mydata), wszTemp, sizeof(wszTemp));
AfxMessageBox(wszTemp);
tufaqing 2007-06-30
  • 打赏
  • 举报
回复
1. 先确定内存字符是不是unicode,如果是就直接AfxMessageBoxW((WCHAR*)内存值)。
2. 如果不是unicode,要确定是什么编码(简体中文是936,繁体中文是950),编码方式(英文也可以)和你的系统一样,就可以直接AfxMessageBoxA((chra*)内存值)。其他或所有的都可以用MultiByteToWideChar函数,第一个参数填上编码方式,然后AfxMessageBoxW((WCHAR*)转换值)。

注意:确定编码方式(包括是不是unicode)谁都帮不了你,要自己确定,也许你的内存要标记(看你怎样将这些值传进来的)。否则只有手动选择一种编码方式了,IE浏览器也是这么做的(查看->编码),选择错误出现乱码也是正常的。
心雨楼 2007-06-30
  • 打赏
  • 举报
回复
搞一个早上 一个字符串都显示不出来啊 郁闷的说
心雨楼 2007-06-30
  • 打赏
  • 举报
回复
我这样也是乱码

char j[5] = "av";
AfxMessageBox((TCHAR*)j);
心雨楼 2007-06-30
  • 打赏
  • 举报
回复
通过的
jasonshark 2007-06-30
  • 打赏
  • 举报
回复
你是用AfxMessageBox((WCHAR*)mydata)通过编译的吗?
心雨楼 2007-06-30
  • 打赏
  • 举报
回复
这样AfxMessageBox(mydata)出来的都是乱码啊

所以才要转换的
jasonshark 2007-06-30
  • 打赏
  • 举报
回复
那就AfxMessageBox(mydata)试下吧, PS: mydata长度不够,建议加2个NULL
如果AfxMessageBox(mydata)不能通过编译,就使用AfxMessageBox((WCHAR*)mydata)
出现乱码的话要就是Unicode的原因了,那时候再说转化
加载更多回复(9)

16,471

社区成员

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

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

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