1)数据类型、变量和常量的定义
在Windows API中,定义了若干数据类型和基本常量(windef.h):
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned long DWORD;
LONGLONG 64位整数
typedef char CHAR;
typedef __nullterminated CONST CHAR * LPCSTR;
typedef unsigned short wchar_t;
typedef wchar_t WCHAR;
typedef CONST WCHAR * LPCWSTR;
#ifdef UNICODE
typedef LPCWSTR LPCTSTR;
#else
typedef LPCSTR LPCTSTR;
#endif
typedef UINT WPARAM;
typedef LONG LPARAM;
typedef LONG LRESULT;
typedef DWORD COLORREF; // 0x00bbggrr
typedef short HFILE;
#define NULL 0 // C++
#define NULL ((void *)0) // C
#define FALSE 0
#define TRUE 1
在Windows API中,还定义了若干作为对象索引的句柄(handle):
HANDLE // Handle to an object.(DWORD)
HBITMAP // Handle to a bitmap.
HBRUSH // Handle to a brush.
HCURSOR // Handle to a cursor.
HDC // Handle to a device context (DC).
HFILE // Handle to a file opened by OpenFile, not CreateFile.
HFONT // Handle to a font.
HGLOBAL // Handle to a global memory block.
HICON // Handle to an icon.
HINSTANCE // Handle to an instance.
HLOCAL // Handle to a local memory block.
HMENU // Handle to a menu.
在Windows API编程中,常在变量中使用前缀来代表其数据类型:
b BOOL
by BYTE
c char
dw DWORD
fn function(函数)
h handle(句柄)
i int
l LONG
lp long pointer(长指针)
n short
np near pointer(近指针)
p pointer(指针)
s string(字符串)
sz string end with zero(以’\0’结尾的字符串)
w WORD
在Windows API编程中,在常量中使用前缀来代表其所属范围:
CS Class Style([窗口]类风格)
CW Create Window(创建窗口)
DT Drawing Text(绘制文本)
IDC IDentity of Cursor(光标标识)
IDI IDentity of Icon(图标标识)
WM Window Message(窗口消息)
WS Window Style(窗口风格)
l 几点有关字符(串)类型的说明:
n char为C/C++语言的单字节字符类型
n wchar_t为ISO C++的(双字节)宽字符类型,也是ISO C99的(双字节)宽字符typedef类型(typedef unsigned short wchar_t;)
n WCHAR和_TCHAR都是微软公司为Win32定义的与wchar_t等价的双字节宽字符typedef类型(typedef wchar_t WCHAR; typedef wchar_t _TCHAR;)
n LPSTR为单字节字符串的长指针
n LPCWSTR为双字节字符串的长指针
n LPCTSTR为(双或单字节)字符串的长指针(按是否定义UNICODE确定)
n string为ISO C++标准新加的单字节字符串类
n CString为微软公司的MFC定义的字符串类(兼容单双字节字符)
n 在要求宽字符串的地方,字符串常量前需要添加L运算符
例如:
int x, y;
LPCWSTR szAppName = L"WHello";
wchar_t buf[20];
……
swprintf(buf, 20, L"Hello! (%d, %d)", x, y);
posted on 2006-06-12 11:42
踏雪赤兔 阅读(643)
评论(0) 编辑 收藏 引用 所属分类:
速查手册