char类型的实参与LPCWSTR类型的形参类型不兼容
char
char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。
wchar_t
Wide character 。wchar_t数据类型一般为16位或32位,但不同的C或C++库有不同的规定,如GNU Libc规定wchar_t为32位,总之,wchar_t所能表示的字符数远超char型。unicode编码的字符一般以wchar_t类型存储
wchar_t wt[] = L"中国伟大复兴梦";
wcout << wt << endl;
//将char*转换成wchar_t
wchar_t appName[5]=TEXT("test"); //可以用TEXT()方法将char转换成wchar_t
L"test" //也可以在字符串前面加上L
//string.h
//在字符串操作时在函数名前加 ‘l’
lstrcpy();
lsrtcmp();
LPCWSTR
LPCWSTR是一个指向unicode编码字符串的32位指针,所指向字符串是wchar型,而不是char型。
该类型是如下声明的:
typedef const wchar_t* LPCWSTR;
解决方案:
- 把工程设置里去掉UNICODE宏定义(VS)
项目->XXX属性->配置属性->常规->字符集 , 由使用Unicode字符集 改为 使用多字节字符集
- 使用TCHAR。
#define char TCHAR
- 如果还有错误,在出错的字符串前面加大写
L"this is simba.\n"
- 如果还有错误,在出错的字符串处理函数前面加小写‘l’
lstrcat (llala,L"abcd") ;