VS2010中FindWindow()函数问题
来源:互联网 发布:js 引用怎么加时间戳 编辑:程序博客网 时间:2024/05/16 12:09
在练习Windows API 时,FindWindow函数时肯定会用到的,写一个简单的函数大家可以运行一下
#include<windows.h> //API函数的头文件
int main()
{
HWND wnd; //定义一个窗口句柄变量,用以存储找到的窗口句柄
wnd=FindWindow(NULL,"轱辘.txt - 记事本"); //获得窗口名为"无标题.txt - 记事本"的窗口句柄
SendMessage(wnd,WM_CLOSE,0,0); //调用SendMessage函数,发送一个WM_CLOSE(关闭)消息给wnd窗口句柄。
return 0;
}
当然你要保证,你有一个名字叫做"轱辘.txt - 记事本"的程序正在运行,此处要注意了“-”和".txt"以及“记事本”之间是有空格的偶。
当你点击运行时,会发现无法运行报错: error C2664: “FindWindowW”: 不能将参数 2 从“const char [22]”转换为“LPCWSTR”1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
这是因为vs用的是Unicode,需要在"轱辘.txt - 记事本"前加上L或者_T才可以的,因为"轱辘.txt - 记事本"是char*类型,而现在需要LPCWSTR类型,当然也可以用函数来转换:这里有链接(高人到处都是)http://blog.csdn.net/zhouxuguang236/article/details/8761497
至于LPCWSTR是什么,我做一下百度得了(自己也学习一下):
LPCWSTR是一个指向unicode编码字符串的32位指针,所指向字符串是wchar型,而不是char型。该类型是如下声明的:typedef const wchar_t* LPCWSTR;因为在VS2005以后,编码方式默认为Unicode,部分函数在使用时默认调用Unicode方式(函数名+W,exp:MessageBox+W=MessageBoxW),而非ASNI方式(函数名+A,exp:MessageBox+A=MessageBoxA)。
0 0
- VS2010中FindWindow()函数问题
- FindWindow函数造成的问题
- FindWindow函数
- C#中使用FindWindow函数详解
- VC++中FindWindow函数的学习
- 在Kylix中模拟Windows API中的FindWindow函数
- 在Kylix中模拟Windows API中的FindWindow函数
- 在C#中使用API函数FINDWINDOW查找窗体
- 如何声明 findwindow 函数。
- FindWindow函数介绍
- FindWindow函数的用法
- FindWindow,Win32 API函数
- Findwindow函数用法
- FindWindow,GetActiveWindow函数用法
- 函数FindWindow()简介
- Windows控件消息函数 - FindWindow
- opencv3.0 + VS2010中FindContours()函数崩溃问题
- findwindow
- Hive的安装
- ERROR: SWT folder '' does not exist. Please set ANDROID_SWT 处理方法
- 快速开发之xUtils(二)ViewUtils详细介绍
- VC++ (MFC)调用 C#生成DLL的方法
- Dense Trajectory
- VS2010中FindWindow()函数问题
- log4net.config 将日记同时写入到数据库和文件当中
- 关于android中操作sim卡联系人的相关内容
- C++和java多态的区别
- 编译器与解释器
- EVC创建DLL库及调用
- Exported service does not require permission解决办法
- 快速开发之xUtils(三)DbUtils详细介绍
- 几种backup小结