本节中列出的所有字符串函数都存在于ANSI和Unicode实现中,以支持ANSI和Unicode参数。然而,他们中间有一些微妙的差异。
以下字符串函数不需要特殊注释;它们的ANSI和Unicode实现工作相同。
CharNext
CharPrev
lstrcat
lstrcpy
lstrlen
lstrlen函数返回的值始终是字符数,无论是使用ANSI还是Unicode表单。
以下字符串函数对当前线程的区域设置敏感(从用户在控制面板中选择的区域设置派生)。LSTRCMP和LSTRCMPI函数不执行字节比较,如ANSI C名称;它们根据所选区域的规则比较字符串。
CharLower
CharLowerBuff
CharUpper
CharUpperBuff
LSTRCMP
LSTRCMPI
以下功能在OEM字符集和ANSI或Unicode之间进行转换,具体取决于使用哪个版本。
CharToOem
CharToOemBuff
OemToChar
OemToCharBuff
打印功能wsprintf通过在其格式规范中提供以下新的和更改的数据类型来支持Unicode。这些格式规范影响wsprintf功能解释相应的传入参数的方式。
格式规格 | ANSI版本 | Unicode版本 |
c | CHAR | WCHAR |
C | WCHAR | CHAR |
hc, hC | CHAR | CHAR |
hs, hS | LPSTR | LPSTR |
lc, lC | WCHAR | WCHAR |
ls, lS | LPWSTR | LPWSTR |
s | LPSTR | LPWSTR |
S | LPWSTR | LPSTR |
输出文本的数据类型始终取决于函数的版本。在传入参数和输出文本的数据类型不符合的情况下,wsprintf将根据需要执行从Unicode转换为ANSI,反之亦然。
对于Unicode版本的wsprintf,格式字符串是Unicode,输出文本也是。