1. win32 头文件
WINDOWS.H包含很多其他头文件
WINDEF.H 定义了基本类型
WINNT.H 处理UNICODE字符,WINNT.H 包含了CTYPE.H 头文件
CTYPE.H中定义了wchar_t 类型(typedef unsigned short wchar_t)
WINNT.H 中定义了CHAR 和WCHAR两种类型,在WINDOWS编程中建议使用这两种类型
typedef char CHAR ;
typedef wchar_t WCHAR ; // wc
WINNT.H中定义了6种指向8字节字符串的指针
typedef CHAR * PCHAR, * LPCH, * PCH, * NPSTR, * LPSTR, * PSTR ;
typedef CONST CHAR * LPCCH, * PCCH, * LPCSTR, * PCSTR ;
N和L表示Near, Long。在WIN32中没区别
WINNT.H中还定义了6种指向16字节字符串的指针
typedef WCHAR * PWCHAR, * LPWCH, * PWCH, * NWPSTR, * LPWSTR, * PWSTR ;
typedef CONST WCHAR * LPCWCH, * PCWCH, * LPCWSTR, * PCWSTR ;
WINNT.H中还定义了TCHAR类型,如果UNICODE宏被定义,TCHAR将被定义为WCHAR,如果UNICODE宏没有定义,TCHAR会被定义为CHAR。
#ifdef UNICODE
typedef WCHAR TCHAR, * PTCHAR ;
typedef LPWSTR LPTCH, PTCH, PTSTR, LPTSTR ;
typedef LPCWSTR LPCTSTR ;
#else
typedef char TCHAR, * PTCHAR ;
typedef LPSTR LPTCH, PTCH, PTSTR, LPTSTR ;
typedef LPCSTR LPCTSTR ;
#endif
WINNT.H还定义了L 宏, 将L放在字符串左边。
如果定义了UNICODE宏,__TEXT宏如下定义:
#define __TEXT(quote) L##quote
如果定义了UNICODE宏没有定义, __TEXT宏如下定义:
#define __TEXT(quote) quote
最后会定义TEXT宏
#define TEXT(quote) __TEXT(quote)
2.Windows Function call
[1] MessageBox
#ifdef UNICODE
#define MessageBox MessageBoxW
#else
#define MessageBox MessageBoxA
#endif
[2]Windows String function
ILength = lstrlen (pString) ;
pString = lstrcpy (pString1, pString2) ;
pString = lstrcpyn (pString1, pString2, iCount) ;
pString = lstrcat (pString1, pString2) ;
iComp = lstrcmp (pString1, pString2) ;
iComp = lstrcmpi (pString1, pString2) ;
sprintf (szBuffer, "The sum of %i and %i is %i", 5, 3, 5+3) ;