易码技术论坛

 找回密码
 加入易码
搜索
查看: 320|回复: 3

崩溃了,CSTRING转char *,很多方法都失败

[复制链接]
发表于 2010-6-28 23:10:23 | 显示全部楼层 |阅读模式
1.VS2005 MFC,编码为UNICODE,这点不能改
CString dlg1;
char *cdlg1 =new char [MAX_PATH];
GetDlgItemText(IDC_EDIT1,dlg1);
ZeroMemory(cdlg1,MAX_PATH);
sprintf(cdlg1,"%s",dlg1.GetBuffer(dlg1.GetLength()));

断点调试后发现cdlg1只有dlg1的第一个字符。。。
网上找到的
1.
strncpy(a,(LPCTSTR)str,sizeof(a));
不可用,不接受3个参数
2.
char*   sz   =   str.GetBuffer(str.GetLength());
转出来还是一个字符
3。“可以直接强制类型转换   (LPTSTR)(LPCTSTR)str,即为char*类型”我是用这个
还是一个字符

崩溃了,谁来帮我。。。。。。。。。。。。
发表于 2010-6-29 08:06:33 | 显示全部楼层
1.VS2005 MFC,编码为UNICODE

好像是用的wchar不是char。如果是unicode的话。
 楼主| 发表于 2010-6-29 11:14:46 | 显示全部楼层
已经解决了
WideCharToMultiByte(CP_OEMCP, NULL, (LPCWSTR)idlg1, -1,(LPSTR)cdlg1, MAX_PATH, NULL, FALSE);
发表于 2010-6-29 22:44:40 | 显示全部楼层
LZ,我貌似跟你提过这个函数的……

评分

参与人数 1小红花 +20 收起 理由
epcdiy + 20 记忆力不好

查看全部评分

您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-25 05:12 , Processed in 0.012683 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表