[原创]解决Unicode的乱码问题

    今天练习孙鑫老师MFC视频中第五章的文本编辑程序时遇到了一个很令人蛋疼的问题,就是Unicode版本的问题,会出现乱码,大家都知道中文是2个字节的,如果按照非Unicode字符处理,就会出现乱码,试了半天,终于解决,现在把我遇到的问题以及解决方法整理一下:(以孙鑫老师视频中例子为例)大家也可以创建SDK工程,关键是掌握方法。

 

    1。先新建一个工程

    2。然后按照视频写好代码,当输入英文时,一切好好的,我想输入中文试试,问题来了,这时按下退格键第一次会显示一个乱码,再按一次才会删除字符,我知道这是由于Unicode的原因,但苦于一直找不出解决方法,就去网上搜,(之前写播放器时想让歌曲名动态滚动时也遇到这个问题),还真搜到了点眉目。

    3。网上说要编译Unicode程序就要安装Unicode

Build-->Configurations-->Add,在Configuration中添加Unicode Debug,这样就添加一个Unicode Debug配置
    4。Build-->Set Active Configuration,选择Win32 Unicode Debug作为当前活动配置
    5。Project-->Settings,在C/C++属性页中选择Preprocessor条目,在Preprocessor definitions中添加编译项 _UNICODE
    6。好了,这时心想应该没问题了吧,编译看看,哇
LINK : fatal error LNK1104: cannot open file "mfco42ud.lib"   (不一定是缺少mfco42ud.lib,具体看你机子缺少什么)打不开这个库?再去网上搜,原来是默认的VC不支持Unicode,这该怎么办呢,难不成要重装,我不信邪,再搜,找到了方法,只要将安装盘中你缺少的库拷贝到安装目录下就可以了(我的是D:/安装文件/VC98/MFC/Lib),再试试看那,又来了
error C2593: 'operator +=' is ambiguous  指向m_strLine+=nChar;
 查一下ambiguous  什么意思,原来是引起歧义的; 模棱两可的, 含糊不清的,这怎么会呢CString不是重载了+=号吗?再一看,原来m_strLineCString的,而nCharUINT的,这个简单,转换一下,嘿嘿,果然。。。
    7。这个时候编译应该能通过了,运行一下,靠,提示找不到MFCN42UD.DLL(不一定是这个库)这下完了哇,安装程序里只有.lib,没有.dll哇,再去搜一下,在CSDN找到了人家提供的.lib.dll,嘿嘿,借来用用,将里面的.dll文件拷贝到C:/WINDOWS/systemOK了。
   现在运行一下,哈哈,终于被我解决了!!
   这是我在MFC中解决的问题,运用到SDK应该是一样的
  不能传附件 ,如果需要.lib和.dll文件,请访问http://www.rupeng.com/forum/tj-18313-8286.html下载
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值