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什么呢?
12 个解决方案
#1
wh=::FindWindow(NULL,_T("360任务管理器"));
因为你的工程是用UNICODE编码了
#2
vs现在默认是Unicode编码了。
现在需要用 wh=::FindWindow(NULL, L"360任务管理器");
现在需要用 wh=::FindWindow(NULL, L"360任务管理器");
#3
6.0好用还是2010好用?
#4
6.0好用还是2010好用?
#5
习惯了肯定是vs2010好用。功能更加强大,呵呵
#6
vs现在默认是Unicode编码了。
现在需要用 wh=::FindWindow(NULL, L"360任务管理器");
为什么这样写又不行了呢?
HWND wh;
CONST PCHAR taskCaption="360任务管理器";
void CLlkDlg::OnStartOporate() {
wh=::FindWindow(NULL,L(taskCaption));
.
.
.
}
#7
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已经帮你把现成的都写出来了,你何必要自己搞创新呢~
#8
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",所以想定义一个,以后改起来也方便,不用多处修改。
#9
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前面有个_,就觉得麻烦,人家就是这么设定的,看起来不好看,不代表功能就烂
#10
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前面有个_,就觉得麻烦,人家就是这么设定的,看起来不好看,不代表功能就烂
不怕的,现在才开始学,等熟练一点再弄吧,我把Unicode编码的设置改成未设置了,暂时不存在转换的问题,依旧直接用PCHAR定义字符串。
#11
vs现在默认是Unicode编码了。
现在需要用 wh=::FindWindow(NULL, L"360任务管理器");
为什么这样写又不行了呢?
HWND wh;
CONST PCHAR taskCaption="360任务管理器";
void CLlkDlg::OnStartOporate() {
wh=::FindWindow(NULL,L(taskCaption));
.
.
.
}
帅哥,,我对wh=::FindWindow(NULL,L(taskCaption)); 这句代码很无奈。
首先,L"xxx"是意思,是用Unicode对字符串“xxx”进行编码存储。而不是L和变量连用。
_T("xxx") 的结果,在Unicode字符环境下,是和L“xxx”是一样的结果。
你可以去看看_T的定义。
这不是照猫画虎,还是先把基础知识看看,切勿浮沙筑高楼
#12
vs现在默认是Unicode编码了。
现在需要用 wh=::FindWindow(NULL, L"360任务管理器");
6.0好用还是2010好用?
用什么无所谓,只是工具而已。
#1
wh=::FindWindow(NULL,_T("360任务管理器"));
因为你的工程是用UNICODE编码了
#2
vs现在默认是Unicode编码了。
现在需要用 wh=::FindWindow(NULL, L"360任务管理器");
现在需要用 wh=::FindWindow(NULL, L"360任务管理器");
#3
wh=::FindWindow(NULL,_T("360任务管理器"));
因为你的工程是用UNICODE编码了
6.0好用还是2010好用?
#4
vs现在默认是Unicode编码了。
现在需要用 wh=::FindWindow(NULL, L"360任务管理器");
6.0好用还是2010好用?
#5
wh=::FindWindow(NULL,_T("360任务管理器"));
因为你的工程是用UNICODE编码了
6.0好用还是2010好用?
习惯了肯定是vs2010好用。功能更加强大,呵呵
#6
vs现在默认是Unicode编码了。
现在需要用 wh=::FindWindow(NULL, L"360任务管理器");
为什么这样写又不行了呢?
HWND wh;
CONST PCHAR taskCaption="360任务管理器";
void CLlkDlg::OnStartOporate() {
wh=::FindWindow(NULL,L(taskCaption));
.
.
.
}
#7
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已经帮你把现成的都写出来了,你何必要自己搞创新呢~
#8
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",所以想定义一个,以后改起来也方便,不用多处修改。
#9
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前面有个_,就觉得麻烦,人家就是这么设定的,看起来不好看,不代表功能就烂
#10
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前面有个_,就觉得麻烦,人家就是这么设定的,看起来不好看,不代表功能就烂
不怕的,现在才开始学,等熟练一点再弄吧,我把Unicode编码的设置改成未设置了,暂时不存在转换的问题,依旧直接用PCHAR定义字符串。
#11
vs现在默认是Unicode编码了。
现在需要用 wh=::FindWindow(NULL, L"360任务管理器");
为什么这样写又不行了呢?
HWND wh;
CONST PCHAR taskCaption="360任务管理器";
void CLlkDlg::OnStartOporate() {
wh=::FindWindow(NULL,L(taskCaption));
.
.
.
}
帅哥,,我对wh=::FindWindow(NULL,L(taskCaption)); 这句代码很无奈。
首先,L"xxx"是意思,是用Unicode对字符串“xxx”进行编码存储。而不是L和变量连用。
_T("xxx") 的结果,在Unicode字符环境下,是和L“xxx”是一样的结果。
你可以去看看_T的定义。
这不是照猫画虎,还是先把基础知识看看,切勿浮沙筑高楼
#12
vs现在默认是Unicode编码了。
现在需要用 wh=::FindWindow(NULL, L"360任务管理器");
6.0好用还是2010好用?
用什么无所谓,只是工具而已。