顺手记录
基础
开发工具
VS 或者 VSCode + mingw
Windows 资料来源
微软官方学习网站:https://learn.microsoft.com/zh-cn/windows/win32/
Win32 API 简介
API 是应用程序编程接口,简单来说就是一个程序库。常说的 SDK 编程就是直接调用 API 函数进行编程。 Win32 API 是指 32 位应用程序时用的一组函数、结构、宏定义。
第一个程序
// 这个程序是控制台程序,创建时选择桌面程序会报错
// 代码一目了然,结果就不展示了
#include<windows.h>
#include<stdio.h>
int main(int argc, char* argv[])
{
// 调用 API 函数 MessageBox
int nSelect = ::MessageBox(NULL, TEXT("这个是内容"), TEXT("标题"), MB_OKCANCEL);
if (nSelect)
{
printf("用户选择了确定");
}
else
{
printf("用户选择了取消");
}
return 0;
}
在自己的程序中调用API函数的方法非常简单,具体步骤如下:
1、包含要调用函数的声明文件。
2、连接到指定的库文件(即 lib 文件)。VS 默认已经连接了常用的 lib 文件,所以一般情况下,这一步对我们是透明的。如果需要显式设置的话(比如在网络编程时需要添加 WS2_32.lib 库),可以在文件的开头使用 “#pragma comment(lib, "mylib.lib")” 命令。其中 mylib.lib 是目标库文件。
3、在 API函数前加 “::” 符号,表示这是一个全局的函数,以与 C++ 类的成员函数相区
变量命名
#define MAX_BUFFER 256 // 定义常量,常量名全大写
char g_szTitle[MAX_BUFFER] // g_ 前缀表示全局变量,sz 表示类型为字符串, title 是标题的意思
int m_nErrorCode; // m_ 前缀表示类的成员变量,n 表示类型为长整数,error code 是错误代码的意思
BOOL bResult; // 变量默认即为局部变量,无需限定范围的前缀,b 表示类型为布尔型
局部变量应用小写字母(如 i,j),常量名全大写如(如 MAX_BUFFER ),函数名写动作性的(如 CreateDirectory ),结构名(类名)应该带有整体性(如 class CRaster )