MFC按钮弹出选择文件夹 对话框,读取的文件夹地址怎么不对

路径中为什么每个字符中间都有个0,最后值成D了。... 路径中为什么每个字符中间都有个0,最后值成D了。 展开
 我来答
One_More_2013
推荐于2016-04-22 · TA获得超过682个赞
知道小有建树答主
回答量:1028
采纳率:50%
帮助的人:285万
展开全部
这个是双字节,和单字节的问题。你现在得到的是双字节字符串,显示的时候你又将双字节的字符串用单字节字符串的显示方式来显示了,而字符串的终止符是0,所以遇到第一个0就停止显示了。

解决的方法,1.是将双字节的字符串变成单字节的字符串;然后再显示;
2.直接显示双字节字符串的函数,你看看有没有wcout。
追问
BUffer 是char* 
中间 bi.pszDisplayName = Buffer
不能通过 说CString 无法转到 LPWSTR

强转(LPWSTR)Buffer之后,又取地址
SHGetPathFromIDList(pIDList, (LPSTR)Buffer);
就成这样了
能不能不强制转换,别的方法可以得到?
追答
直接显示双字节字符串的函数,你看看有没有wcout。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式