编译DirectX Tutorials时遇到的错误:"const wchar_t *" 类型的实参与 "LPCSTR" 类型的形参不兼容
2016-11-28 00:04
519 查看
typedef _Null_terminated_ CONST CHAR *LPCSTR, *PCSTR;
可以知道LPCSTR代表了const char *类型,它是一个指向以'\0'结尾的8位(单字节)ANSI字符数组的常量指针,
而const wchar_t *类型是一个指向'\0'结尾的16位(双字节)Unicode字符数组的常量指针.
在VS编译器中直接输入的字符串常量(如“abc”)默认是以const char *的格式(即ANSI编码)储存的,因此会导致类型不匹配的编译错误。
解决的办法有两个:
第一个方法是右击“解决方案资源管理器”中的项目,“属性→配置属性→常规→项目默认值→字符集”,默认的选项是“使用多字节字符集”,将它改为“使用Unicode字符集”即可。
这样,输入的字符串会默认以const wchar_t *格式储存。
第二个方法是使用_T宏,它在“tchar.h”中定义,它能够自动识别当前编译器字符串的储存格式并做出相应转换,避免这种类型的编译错误。
具体使用方法为:将“abc”改为_T("abc")。
相关文章推荐
- 错误: "const char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容 (vs2010)
- 关于“Error: "const char *" 类型的实参与 "LPCWSTR"类型的形参不兼容”错误的解决方案
- 关于“Error: "const char *" 类型的实参与 "LPCWSTR"类型的形参不兼容”错误的解决方案
- "const char*"类型的实参与LPCTSTR类型的形参不兼容
- vs2010编译 时 char* 类型形参与LPWSTR 类型的实参不兼容 的解决办法
- VS2013 中IntelliSense: "const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容
- Error:不能将"char*"类型的值分配到"LPSTR"类型的实体 也许 "char*"类型的实参与"LPCWSTR"类型的形参不兼容
- IntelliSense: "const char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容
- "const char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容(即_T、TEXT("")和L"" 的问题)
- "LPWSTR" 类型的实参与"const.char *"类型形参不兼容
- IntelliSense: "const char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容 (vs2010)
- "const char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容
- IntelliSense: "const char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容
- "const char*"类型的实参与LPCTSTR类型的形参不兼容
- "const char*"类型的实参与LPCTSTR类型的形参不兼容问题
- vs2013 IntelliSense: "const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容
- IntelliSense: "const char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容
- vs2013 报:"const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容
- VS2010中的MessageBoxIntelliSense: "const char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容 (vs2010)
- 【win32】visual studio中"const char *"类型的实参与"LPCWSTR"类型的形参不兼容