常用的Windows数据类型与C语言本质类型对比

  • Windows在windef.h中定义了若干实用的宏,例如:
#define TRUE 1
#define FALSE 0
#define CALLBACK __stdcall
#define WINAPI __stdcall
#define APIENTRY WINAPI
#define LOWORD(x) ((WORD)(x))

其中__stdcall表示PASCAL调用约定,被调函数采用自右向左的顺序参数入栈,函数自己在退出时清空堆栈;__cdecl表示C调用约定,被调函数采用自右向左的顺序参数入栈,由调用者清空堆栈。CALLBACK表示回调函数,WINAPI表示Windows API函数;far表示32位远指针;LOWORD(x)取x的低16位值,HIWORD(x)取x的高16位值;
Windows程序经常需要使用多种类型的数据,为了提高程序的可读性和兼容性,Windows给许多基本数据类型重新定义了别名,一般形式为:

typedef C语言本质类型 Windows数据类型
例如:
typedef unsigned long DWORD
则 DWORD x;
等价于 unsigned long x;

常用的Windows数据类型如下,定义在windef.h中:

Windows 数据类型 C语言本质类型 含义
BOOL int 逻辑类型(取值为TRUE/FALSE)
BYTE unsigned char 字节型
CHAR char ANSI字符
COLORREF unsigned long 颜色值,分红、绿、蓝(RGB字节)
DWORD unsigned long 无符号长整型
LPARAM long LONG型消息参数
WPARAM unsigned int WORD型消息参数
LPSTR CHAR * 8位ANSI字符串的指针
LPCSTR CONST CHAR * 只读型8位ANSI字符串的指针
LPCWSTR CONST CHAR * 只读型 16位Unicode字符串的指针
LPWSTR WCHAR * 16位ANSI字符串的指针
LRESULT long 消息处理结果值

来源:《软件开发技术——Windows高级编程技术》

你可能感兴趣的:(基本概念,语言)