首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

vs2010停wh=:FindWindow(NULL,"360任务管理器")

2014-01-14 
vs2010下wh::FindWindow(NULL,360任务管理器)HWND whvoid CLlkDlg::OnStartOporate() {wh::FindWind

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什么呢?
[解决办法]

引用:
Quote: 引用:

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已经帮你把现成的都写出来了,你何必要自己搞创新呢~
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

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",所以想定义一个,以后改起来也方便,不用多处修改。

还有一楼用的_T也远比L好,_T是根据你的项目是否使用Unicode来决定到底是L还是没有L,你一股脑的用L,一旦什么时候你项目又变成多字节了,你就杯具了。你不能因为看到_T前面有个_,就觉得麻烦,人家就是这么设定的,看起来不好看,不代表功能就烂

热点排行