错误 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