认识 Windows.h
-
在 C++ 中,进行 Windows 开发通常使用的库是
windows.h
-
这是 Windows 平台特有的一个头文件,它包含了Windows API(应用程序接口)的声明和定义,允许开发者编写与 Windows 操作系统交互的程序。
-
windows.h
是一个包含大量Windows平台特有的数据类型、宏、函数原型、结构等声明的头文件。 -
通过这个头文件,你可以访问Windows API,用于执行各种任务,如窗口创建、消息处理、图形绘制、文件操作、设备通信等。
常见的功能
windows.h
中包含了大量的功能,常见的有以下这些:
- 窗口管理:创建、销毁、移动、调整大小、显示或隐藏窗口
- 消息处理:定义了一套消息系统,用于窗口之间、窗口与应用程序之间以及应用程序与其他程序之间的通信
- 图形设备接口(GDI):提供了用于在屏幕上绘制文本、线条、形状等的基本功能
- 内存管理:包括全局内存、局部内存、堆内存等的分配和释放。
- 文件操作:提供了创建、打开、读取、写入和关闭文件的函数
- 设备通信:允许应用程序与硬件设备进行交互,如打印机、扫描仪等
- 系统服务:提供了访问系统资源、获取系统信息、执行系统任务等功能
使用的要求
要深入理解和使用 windows.h
,你需要具备以下基础:
- C++基础:熟悉 C++ 语言的基本语法
- Windows操作系统基础:了解Windows操作系统的基本原理、架构、界面元素等
如何入门
-
通过一些视频课程
-
推荐阅读:《Windows程序设计 (第5版)》
-
查看 Windows API 文档:https://docs.microsoft.com/en-us/windows/win32/api/
常见 API 展示
Windows API(应用程序接口)包含了大量的函数,这些函数为开发者提供了与 Windows 操作系统交互的能力
以下是一些常用的 Windows API 函数,按照不同的功能类别进行分类和归纳
-
请注意,以下只是 Windows API 中的一部分常用函数,并且随着 Windows 版本的更新,新的函数和API可能会被添加,或者旧的函数可能会被弃用
-
因此,在开发过程中,建议查阅最新的 Windows API 文档以获取最准确和最新的信息
文件和目录操作
-
CreateFile:用于创建或打开文件、管道、邮槽、通信资源、设备、控制台、目录(作为文件对象)或磁盘驱动器
-
ReadFile:从文件中读取数据
-
WriteFile:将数据写入文件
-
DeleteFile:删除一个指定的文件
-
RemoveDirectory:删除指定目录
-
SearchPath:查找指定文件
窗口和消息处理
- CreateWindow 或 CreateWindowEx:创建窗口
- ShowWindow:设置窗口的可见性
- UpdateWindow:更新窗口的客户区域
- GetMessage / PeekMessage:从调用线程的消息队列中检索消息
- TranslateMessage:将虚拟键消息转换为字符消息
- DispatchMessage:将消息发送到窗口以进行处理
- SendMessage / PostMessage:向窗口发送消息
设备上下文和图形操作
- CreateDC:为指定设备创建设备上下文
- SelectObject:将图形对象选入设备上下文
- Ellipse / Rectangle:在设备上下文中绘制椭圆或矩形
- LineTo / MoveTo:在设备上下文中绘制线条
- TextOut:在设备上下文中输出文本
内存管理
- GlobalAlloc / LocalAlloc:分配内存块
- GlobalLock / LocalLock:锁定内存块并返回其指针
- GlobalUnlock / LocalUnlock:解锁之前锁定的内存块
- GlobalFree / LocalFree:释放之前分配的内存块
系统服务
- GetSystemInfo:检索有关当前系统的信息
- GetVersion / GetVersionEx:检索当前正在运行的Windows操作系统的版本信息
- SetCurrentTime:设置当前系统时间
- GetSystemTime:检索当前系统时间
网络编程
- WNetAddConnection / WNetAddConnection2:创建到网络资源的连接
- WNetCancelConnection / WNetCancelConnection2:结束网络连接
- WNetEnumResource:枚举网络资源。
进程和线程
- CreateProcess:创建新进程和它的主线程
- CreateThread:在调用进程中创建线程
- TerminateProcess / TerminateThread:结束进程或线程
注册表操作
- RegOpenKeyEx:打开指定的注册表项
- RegQueryValueEx:检索与指定值名关联的数据类型和数据
- RegSetValueEx:设置指定值名的数据类型和数据
- RegCloseKey:关闭指定的注册表项
动态链接库(DLL)
- LoadLibrary / LoadLibraryEx:加载指定的模块(通常为DLL)
- GetProcAddress:检索指定模块中函数的地址
- FreeLibrary:卸载指定的模块
字符串操作
- lstrcpy / lstrcat:复制或连接字符串
- lstrcmp / lstrcmpi:比较字符串(区分或不区分大小写)