【Visual Studio】移植其他工程时,报错 C2664,无法将参数 从“const char []”转换为“LPCWSTR”,环境背景为使用 C++ 开发 Qt

知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio

文章目录

问题

复制一下错误信息,方便别人在检索时能检索到我这个文章。错误信息如下:

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2664 “int MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT)”: 无法将参数 2 从“const char [29]”转换为“LPCWSTR” GUICamera C:\Users\jicha\source\repos\GUICamera\supportcode.cpp 208


错误截图如下:

在这里插入图片描述


解决方案

尝试了修改“字符集”,改成“使用多字节字符集”,但是还是不行。

在这里插入图片描述


有一种解决办法是前边加个大写字母 “L”,说是由于您当前的设置似乎已设置为WinAPI函数需要宽字符串。不是很明白,不过能暂时解决问题了。

在这里插入图片描述


还有一种办法是代码

#include <Windows.h>

之前加上

#undef UNICODE
#undef _UNICODE

如果是提示无法转换为 “LPCSTR”,那就加上下面这一句。

#define UNICODE
#define _UNICODE

Ref.

  1. vs 无法将参数 1 从“const char *”转换为“LPCWSTR” 解决办法
  2. 无法将参数2从“const char [14]”转换为“LPCWSTR”
  3. Why #define UNICODE has no effect in windows
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhao-Jichao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值