宽字符与windows总结

与TCHAR.H一样,WINNT.H将TCHAR定义为一般的字符类型。如果定义了标识符UNICODE(没有底线),则TCHAR和指向TCHAR的指标就分别定义为WCHAR和指向WCHAR的指标;如果没有定义标识符UNICODE,则TCHAR和指向TCHAR的指标就分别定义为char和指向char的指标。
    如果已经在某个表头文件或者其它表头文件中定义了TCHAR数据型态,那么WINNT.H和WCHAR.H表头文件都能防止其重复定义。不过,无论何时在程序中使用其它表头文件时,都应在所有其它表头文件之前包含WINDOWS.H。
    WINNT.H表头文件还定义了一个宏,该宏将L添加到字符串的第一个引号前。如果定义了UNICODE标识符,则一个称作 __TEXT的宏定义如下:
    #define __TEXT(quote) L##quote
    如果没有定义标识符UNICODE,则像这样定义__TEXT宏:
    #define __TEXT(quote) quote
    此外, TEXT宏可这样定义:
    #define TEXT(quote) __TEXT(quote)
    如果您希望明确定义8位字符变量和字符串,请使用CHAR、PCHAR(或者其它),以及带引号的字符串。为明确地使用16位字符变量和字符串,请使用WCHAR、PWCHAR,并将L添加到引号前面。对于是8位还是16位取决于UNICODE标识符的定义的变量或字符串,要使用TCHAR、PTCHAR和TEXT宏。
标准版
sprintf
swprintf
_stprintf
最大长度版
_snprintf
_snwprintf
_sntprintf
Windows版
wsprintfA
wsprintfW
wsprintf
标准版
vsprintf
vswprintf
_vstprintf
最大长度版
_vsnprintf
_vsnwprintf
_vsntprintf
Windows版
wvsprintfA
wvsprintfW
wvsprintf
在宽字符版的sprintf函数中,将字符串缓冲区定义为宽字符串。在宽字符版的所有这些函数中,格式字符串必须是宽字符串。不过,您必须确保传递给这些函数的其它字符串也必须由宽字符组成。

你可能感兴趣的:(windows)