您的位置:首页 > 其它

2014-04-02工作日志:error C2440: 'initializing' : cannot convert from 'char [8]' to 'unsigned short *'

2014-04-02 09:49 501 查看
#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <tchar.h>
void main()
{
	DWORD dwCount;
	TCHAR *tC1="topStar";
	TCHAR *tC2="TOPstar";

	dwCount=_tcscmp(tC1,tC2);
	_tprintf("%d",dwCount);
}

以上的写法明显是错误的,因为TCHAR变量所指的字符串没有经过TEXT转换。

因为字符串默认是以ASCII码方式保存,因为是英文字符,因此若以UNICODE 方式保存,就必须TEXT()转换成UNICODE格式。

以上代码有三个错误,以下的改变才是正确的:

#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <tchar.h>
void main()
{
	DWORD dwCount;
	TCHAR *tC1=TEXT("topStar");
	TCHAR *tC2=TEXT("TOPstar");

	dwCount=_tcsicmp(tC1,tC2);
	_tprintf(TEXT("%d"),dwCount);
}


如果tC1是数组名,则也应该这样定义:
TCHAR tC1[]=TEXT("TOPstar");
必须用TEXT()给转换一下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐