VSCode C/C++提示“LPCSTR 类型的实参与LPCWSTR类型的形参不兼容“

52 篇文章 0 订阅
16 篇文章 1 订阅

VSCode C/C++提示"LPCSTR 类型的实参与LPCWSTR类型的形参不兼容"

问题产生原因

VSCode中的C/C++插件会对当前代码进行错误检测,并以波浪线或其它形式标出。没有错误的代码将得到一个清爽的问题区,如下图所示。

在这里插入图片描述
然而,有些代码(特别是使用了MFC,调用了WINAPI的那些代码)中,在Visual Studio IDE中项目属性设置了多字节字符集的工程,都不用宽字符类型LPCWSTR/LPWSTR,而是用LPCSTR/LPSTR/char*等类型。VSCode打开代码默认是UNICODE字符集的,认为你应该使用前者,所以会产生下图的错误:
在这里插入图片描述

解决方式1

Ctrl+Shift+P,输入Edit Configurations,出现下图所示的选项,点击C/C++编辑配置(JSON)
edit_conf
然后会自动在文件夹下创建子文件夹.vscode,并在其中新建c_cpp_properties.json,内容如下所示:
在这里插入图片描述
将"defines"属性下的"UNICODE","_UNICODE"删除即可,效果如下:
target_file
保存文件,这个错误提示就消失了!

解决方式2

打开C/C++扩展设置,如图所示:
在这里插入图片描述
修改上图右边标出来的Defines项。该项默认为空,我们在这里点击“添加项”,然后输入_MBCS,并点击输入框右侧的“确定”。
然后关掉设置页,警告就会消失。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值