vs2019报错说 E0167 "const wchar_t *" 类型的实参与 "LPCSTR" 类型的形参不兼容

摘要:
}//如果在项目属性配置属性高级高级属性字符集中将Unicode字符集的使用更改为多字节字符集,将显示E0167“constwchar_t*”类型参与“LPCSTR”类型的实际参数不兼容//也就是说,L“xxxxxx”应与Unicode字符集的使用相匹配,而“xxxxxxx”应与多字节字符集的用法相匹配。

#include <Windows.h>
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
MessageBox( NULL, L"First blood! 你好,Visual Studio!", L" 消息窗口", 0 );//显示一个消息框
return 0;
}

// 如果在项目-属性-配置属性-高级-高级属性-字符集 里面把 使用Unicode字符集改为使用多字节字符集,则
// L"First blood! 你好,Visual Studio!", L" 消息窗口" 这两个字符串会报错,显示 E0167 "const wchar_t *" 类型的实参与 "LPCSTR" 类型的形参不兼容
// 也即 L"xxxxxx" 要和 使用Unicode字符集 搭配, "xxxxxxx" 和 使用多字节字符集 搭配,配错则vs2019就会报错说E0167 "const wchar_t *" 类型的实参与 "LPCSTR" 类型的形参不兼容


/*****
// Beginning Game Programming, 4th Edition
// Chapter 1 - HelloWorld program

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nShowCmd)
{
MessageBox(NULL, "Welcome to Windows Programming!","HELLO WORLD", MB_OK | MB_ICONEXCLAMATION);
}

// "Welcome to Windows Programming!"和"HELLO WORLD"出现两个报错: E0167 "const wchar_t *" 类型的实参与 "LPCSTR" 类型的形参不兼容
// 原因是vs2019使用unicode字符集,
// 在 vc6.0 或者 vc++2010 上编译运行不会出现这个错误提示,因为 vc6.0 或者 vc++2010 默认使用字符 ANSII 编码方式,而 vs 默认使用 UNICODE 编码方式(使用 Unicode 字符集)。两种编码方式对一些字符所占用的内存空间大小不同,为了实现兼容,可以在 vs 中进行项目属性设置,即,将“使用 Unicode 字符集”改为“使用多字节字符集
// 解决办法:需要在项目-属性-配置属性-高级-高级属性-字符集 里面把 使用Unicode字符集改为 使用多字节字符集,两个报错信息就会消失
// https://blog.csdn.net/qq_43170478/article/details/104085919
// 要么 维持使用Unicode字符集 的话,就需要把 "Welcome to Windows Programming!" 改为L"Welcome to Windows Programming!"
// 把 "HELLO WORLD" 改为 L"HELLO WORLD"


****/

免责声明:文章转载自《vs2019报错说 E0167 "const wchar_t *" 类型的实参与 "LPCSTR" 类型的形参不兼容》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇计算机组成原理 — GPU 图形处理器我们的大脑是单线程结构还是多线程结构?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何用delphi读取网卡物理号

unit Main; interface uses   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,   Forms, Dialogs, StdCtrls,   Nb, ExtCtrls; type   TForm1 = class(TForm)     Panel...

机器学习中的正则化问题(1)——概念

一般来说,监督学习就是最小化下面函数: [w^* = argmin_w sum_iL(y_i,;f(x_i;w)) + lambdaOmega(w) ] 对于第一部分——Loss函数,一般有如下几种情况: 如果是Square loss,那就是最小二乘了; 如果是Hinge Loss,那就是著名的SVM了; 如果是exp-Loss,那就是牛逼的 Boo...

IP地址转换、主机大小端、htonl、ntohl实现

http://blog.csdn.net/zww0815/article/details/7592940 #include <IOSTREAM>    //#include <WINSOCK.H>    using namespace std;      typedef unsigned short int uint16...

JAVA转义字符

JAVA中转义字符2009-08-12 17:40JAVA中转义字符: 1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377' \0:空字符 2.Unicode转义字符:\u + 四个十六进制数字;0~65535 \u0000:空字符 3.特殊字符:就3个 \":双引号 \':单引号 \\:反斜线 4.控制字符:5个...

Python常用内建模块-struct

以下引用自:廖雪峰官方网站https://www.liaoxuefeng.com/wiki/897692888725344/949448951557344 准确地讲,Python没有专门处理字节的数据类型。但由于str既是字符串,又可以表示字节,所以,字节数组=str。而在C语言中,我们可以很方便地用struct、union来处理字节,以及字节和int,f...

ERROR 1366 (HY000): Incorrect string value: &amp;amp;#39;xE9x83x91xE5xB7x9E&amp;amp;#39; for column &amp;amp;#39;aa&amp;amp;#39; at row 1 MySQL 字符集

ERROR 1366 (HY000): Incorrect string value: 'xE9x83x91xE5xB7x9E' for column 'aa' at row 1创建表之后不能插入中文字符?为啥呢?了解字符集的重要性。它必须在建库之前要确定好,恢复备份时也需要注意 mysql> use testDatabase changedmysq...