VS2005/2008/2010在创建工程时,默认使用的是UNICODE工程。
而vs2003和vc6.0使用的“多字符集”(Multi-Byte Character Set)。
CString s;
s.Format(“count = %d”,count);
按经验这肯定不会有错误的,但是不好意思,编译错误,因为这是我的环境采用的Unicode字符集的,而我给CString的Format函数是“多字符集”(Multi-Byte)所以编译不通过,要知道在这种设置下使用MessageBox(“ddd”);编译是不会通过的,因为系统调用的是MessageBoxW,即Unicode宽字符集的那个函数。
还好我根据编译器的提示把s.Format(“count = %d”,count);改成s.Format(_T(“count = %d”,count);就搞定了,_T代表一个宏,宏的意思就是把字符串转成宽字符表示。同样的,MessageBox(“ddd”);可以为MessageBox(_T(“ddd”));
要想还像vc6.0和vs2003那样使用“多字符集”,就要更改vs2010的工程设置。工程右击->属性->常规->字符集选择使用多字节字符集。