关于VS2008字符串的问题

青稞 2010-01-29 12:23:43
刚用VS2008建立了个Dlg对话框,里面有2个Edit编辑框..写了以下代码进行测试:
char szContents[100];
ZeroMemory(szContents, sizeof(szContents));
CString strText;
m_edt1.GetWindowText(strText);
strcpy_s((char *)szContents, sizeof(szContents), (LPSTR)(LPCTSTR)strText);
m_edt2.SetWindowText(((LPCTSTR)szContents));

这个时候发现m_edt2里面的文字显示为:新宋体︀﻾﻾﻾
不知道这个是怎么了。。总是会出现︀,我认为是宽字的问题,我不仅会输入汉字,也会输入英文,怎么解决这个问题呢?
...全文
298 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
marrco2005 2010-01-29
  • 打赏
  • 举报
回复
用 _tcscpy_s 替换 strcpy_s 试一下
青稞 2010-01-29
  • 打赏
  • 举报
回复
因为不想更改设置,让系统自动判定..我设置了_TCHAR szContents[100]; 还是同样的问题..
难道只能设定用宽字么?
青稞 2010-01-29
  • 打赏
  • 举报
回复
阿??为何不能过??
lzjdlsl 2010-01-29
  • 打赏
  • 举报
回复
char szContents[100];是ascii字符集你看下vs2008的字符设置那。点属性-一般-字符集。如果你想用char就改成未设定。如果你想用unicode就设置成unicode。不过char要该成WCHAR那样就是整个工程都是宽字符了。
wltg2001 2010-01-29
  • 打赏
  • 举报
回复
m_edt1.GetWindowText(strText);
==========
这个能过编译吗?
marrco2005 2010-01-29
  • 打赏
  • 举报
回复
TCHAR a[100]

ansi 模式下 sizeof(a) = 100;
unicode 模式下 sizeof(a) = 200;
marrco2005 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fighttodeath 的回复:]
sizeof()是取字节数。。
如果_TCHAR a[100];
那么非Unicode环境下,a中可以存100个英文字符或者50个汉字,Unicode环境下,a中只能存50个英文字符或者50汉字,对吧
[/Quote]
前半句是对的
unicode环境下, 是 100个英文或者100个汉字
青稞 2010-01-29
  • 打赏
  • 举报
回复
sizeof()是取字节数。。
如果_TCHAR a[100];
那么非Unicode环境下,a中可以存100个英文字符或者50个汉字,Unicode环境下,a中只能存50个英文字符或者50汉字,对吧

16,471

社区成员

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

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

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