回 帖 发 新 帖 刷新版面

主题:救助关于CString与char * 的问题

CString str="Hello";
char * c=(LPSTR)(LPCTSTR)str;
CString line(c);
MessageBox(line);
结果只输出了
            H

这是为什么啊?

回复列表 (共6个回复)

沙发

大家帮哈忙啊

板凳

CString str="Hello";
char * c=W2A(str.GetBuffer());
CString line(c);
MessageBox(line);
结果只输出了
            H

这是为什么啊?

3 楼

CString str="Hello";
char * c=(LPSTR)(LPCTSTR)str;
CString line(c);
cout << line << endl;
我得到的是 :hello

4 楼

CString str="Hello";//在str是以Unicode方式存放的
char * c=(LPSTR)(LPCTSTR)str;//是以ANSI方式存放
str在内存中的结构为{0x48,0x00,0x65,0x00,0x6C,0x6C,0x00,0x6F,0x00,0x00,0x00}
结果为什么会只输出一个H不用我说明了吧。

5 楼

楼上的意思是说只输出第一个单元的内容对吗?

6 楼

讨论c++可以到别的区去!

我来回复

您尚未登录,请登录后再回复。点此登录或注册