Q:
大家帮我看下
明明使用了
为什么还是出错呢?
怎么解决?
解决方案在附件里
A:
编译错误。
_T只能把字符串文字量(也就是双引号括起来的字符串)或者字符文字量(也就是单引号括起来的字符)转化为所需的样子。它无法把一个CHAR转化为一个TCHAR,也无法把一个LPSTR转化为一个LPTSTR。
为什么会这样呢?答案是:因为C++语法。
目前的C++语法,支持两种字符串。一种是直接用引号括起的,比如"Hello,
在Visual
如何解决?
方法1、如果是从Visual
方法2、对于那个函数而言,可以调用TextOut的非Unicode版本。
TextOut(xdc,x,y,_T(text),strlen(text));
修改为
TextOutA(xdc,x,y,text,strlen(text));
方法3、如果彻底一点,一定要用Unicode的话,微软提供了MultiByteToWideChar函数,可以用于转化,楼主可以查查这方面的资料。
=========
VS2010设置UNICODE或ASCII字符集问题
VS2010开发程序时,默认的字符集是Unicode。所以如果程序中使用字符常量一定要显示转换为Unicode型,否则编译时报错。
如果你不希望程序支持Unicode字符集,更改项目设置就可以了。
project->properties->configurations Properties -> General ->Project Defaults -> Charater Set中将Unicode字符集改为未设置或者大字符集即可。