(跪求MFC高手帮忙)vs2010的MFC工程中CString 对象经过(LPSTR)(LPCTSTR)强转后丢字符

2024-11-28 01:56:01
推荐回答(2个)
回答1:

明显的unicode与ansi字符串问题。
或者:
CStringA str("abcdefg");
LPSTR lpstr = (LPSTR)(LPCTSTR)str;

或者:
把项目属性改成多字节字符集
或者:
自己对两种字符串进行转换,具体方法参考我空间的文章:
http://hi.baidu.com/%BA%CE%B4%A6%B4%E3%CE%E2%B9%B3/blog/item/91080e3234604ef01a4cfff3.html

或者试一下:
CString str(_T("abcdefg"));
LPSTR lpstr = W2A(str);

回答2:

试试这样做:
CString str(_T("abcdefg"));
LPSTR lpstr=str.GetBuffer();
str.ReleaseBuffer();