vs2010下wh=::FindWindow(NULL,"360任务管理器");
HWND wh;
void CLlkDlg::OnStartOporate() {
wh=::FindWindow(NULL,"360任务管理器");
.
.
.
}
1>d:\documents\visual studio 2010\projects\llk\llk\llkdlg.cpp(172): error C2664: “FindWindowW”: 不能将参数 2 从“const char [22]”转换为“LPCWSTR”
在C++6.0下可以的啊,换成vs2010就不可以。这是why什么呢?
[解决办法]
vs现在默认是Unicode编码了。
现在需要用 wh=::FindWindow(NULL,L"360任务管理器");
为什么这样写又不行了呢?
HWND wh;
CONST PCHAR taskCaption="360任务管理器";
void CLlkDlg::OnStartOporate() {
wh=::FindWindow(NULL,L(taskCaption));
.
.
.
}
因为L用错了,L只能和"XXX"搭配,1L已经帮你把现成的都写出来了,你何必要自己搞创新呢~
因为多个地方要用到"xxx",所以想定义一个,以后改起来也方便,不用多处修改。