VC6.0与VS2010下,MFC编写的区别(UNICODE)

由于改装WIN7系统后,在编写MFC程序中发现无法在工程中添加文件和MSCOMM控件,虽然网上有一些解决的方法,但还是决定改用VS2010。

改用VS2010后,问题就出现了,首先就是界面很不习惯。用了2天后开始慢慢适应。插入插件的操作也有所不同,这里我就不多加解说了,具体晕倒问题可以到网上搜索相应的操作。

本文主要的重点是VS2010默认使用UNICODE编码。首先发现这个问题是自己将在VC6中定义的一些函数,用到VS2010中的时候就会出现一些莫名的错误。最后发现,VS2010默认使用UNICODE编码。

最容易出现错误的就是跟char类型有关的一些变量的类型转换上。

char和CString的类型转换上在vc6中,

char buff[100]="Hello";

CString temp=buff;

这是没有任何问题的,而在vs2010中由于CString是宽字符字符串,所以把单字符的数组直接赋值就会出现错误。这时候就要使用TCHAR类型,TCHAR在没有定义_UNICODE宏下相当于unsigned char,在定义了_UNICODE宏下相当于wchar_t。

vs2010中的转换:

char buff[100]="Hello";

TCHAR buffer[100];

mbstowcs(buffer,buff,100);//转换为宽字符

CString temp=buffer;

宽字符与单字符相互转换的函数mbstowcs和wcstombs。

一些函数中,遇到指针LPSTR和LPWSTR时,也会出现类似的问题。宽字符的初始化要使用_T宏,这里就不多说了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值