使用char变量:"const char *" 类型的实参与 "LPCWSTR"类型的形参不兼容
出现这个问题的原因是由于字符编码问题引起的,详细理论就不赘述了,网上都有。这里主要说解决方法:
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);