"const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容,vs2019

错误:

        E0513    不能将 "LPCSTR" 类型的值分配到 "LPCWSTR" 类型的实体

        E0167    "LPCSTR" 类型的实参与 "LPCWSTR" 类型的形参不兼容 

        E0167    "char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容

        E0167    "const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容

 

 

原因:

      在vc6.0或者vc++2010上编译运行不会出现这个错误提示,因为vc6.0或者vc++2010默认使用字符ANSII编码方式,而vs默认使用UNICODE编码方式(使用 Unicode 字符集)。两种编码方式对一些字符所占用的内存空间大小不同,为了实现兼容,可以在vs中进行如下设置。

 

 

解决办法:

        1、右击项目文件,单击属性;

"const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容,vs2019

"const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容,vs2019

        2、配置属性 —— 高级 —— 高级属性 —— 字符集;

"const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容,vs2019

        3、单击“使用 Unicode 字符集”,单击下拉按钮,将“使用 Unicode 字符集”改为“使用多字节字符集”;

"const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容,vs2019

"const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容,vs2019

        4、单击确定即可,再次编译就不会再出现此类错误提示了。

 

 

参考:

https://jingyan.baidu.com/article/7c6fb428629c3a80652c907e.html