vs2008 字符集问题

错误    1    error C2664: “DrawTextW”: 不能将参数 2 从“const char *”转换为“LPCWSTR”    f:\游戏编程入门\windowtest\hello world\main.cpp    26



字符集的问题。 UNICODE版的字符比ANSI 的内存占用大。 Win32程式中出现的标准定义 char 占一个字节,而 char 的UNICODE版被定义成这样: typedef unsigned short wchar_t ;占2个字节。所以有字符做参数的函数相应也用两个版本了。

解决方法一:

宽字节版函数中带有字符参数的都应该用宽字节版的字符参数,将字符串转换成宽字节很容易:比如将 "Application Error" 转换成UNICODE版,只需在它前面使用一个定义了的宏,如下: L"Application Error" ,或者TEXT("Application Error" )都可以 所以你应将 MessageBox(NULL,Temp,"Application Error",MB_ICONSTOP); 改为: MessageBox(NULL,Temp,L"Application Error",MB_ICONSTOP);

解决方法二:

设置vs的project——>Properties——>Configuration Properties——>General——>Character Set——>Using Multi-Byte Character set

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值