使用char变量:"const char *" 类型的实参与 "LPCWSTR"类型的形参不兼容

本文针对字符编码引起的问题,提供了多种解决方案,包括改变项目编码格式、调整代码书写方式、使用MessageBoxA函数及替换char变量为TCHAR,适用于不同场景。

出现这个问题的原因是由于字符编码问题引起的,详细理论就不赘述了,网上都有。这里主要说解决方法:


1.直接输入文本

类似于这种:

HWND pdfwind;
pdfwind = FindWindow(NULL, "OLE2017_2.pdf");

解决方法有几种:

(1):改变项目编码格式

项目——属性在这里插入图片描述
配置属性——常规——字符集——改成Unicode字符集(如果你就是这个就改成“未设置”)
在这里插入图片描述

(2):改变代码

在文本前面加上大写L

HWND pdfwind;
pdfwind = FindWindow(NULL,L "OLE2017_2.pdf");

将文本写在TEXT中:

HWND pdfwind;
pdfwind = FindWindow(NULL,TEXT( "OLE2017_2.pdf"));

这两种方法均可。

2.使用MessageBox

MessageBox函数改为MessageBoxA函数,内容不变。

3.使用char变量

有时候需要设置变量传文本,以上办法除了第一条,其他均不适用,在此提供新的方法:
原代码:

char WindowTitle[100] = { 0 };
::GetWindowText(hWnd, WindowTitle, 100);

使用TCHAR代替char :

TCHAR WindowTitle[100] = { 0 };
::GetWindowText(hWnd, WindowTitle, 100);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值