StringCbCat:http://msdn.microsoft.com/en-us/library/windows/desktop/ms647495%28v=vs.85%29.aspx StringCchCat:http://msdn.microsoft.com/en-us/library/windows/desktop/ms647518%28v=vs.85%29.aspx
目前我正在编写一个C ++程序来处理TCHAR字符串。我发现这两个Windows API,一个是StringCbCat,另一个是StringCchCat。它们似乎都能够为TCHAR字符串执行strcat()函数。但如果它们是相同的,为什么给它们两个不同的名字呢?我试过谷歌但没有运气。
任何人都知道是否有任何区别?或者他们是一样的?
PS。其他StringCbxxx和StringCchxxx函数也是如此,例如StringCbLength和StringCchLength
答案 0 :(得分:10)
StringCbCat ::
cbDest [in]类型:size_t目标缓冲区的大小, in 字节即可。最大数量 允许的字节数为STRSAFE_MAX_CCH * sizeof(TCHAR)。
实施例::
WCHAR wszTemp[10] ;
DWORD dwNumberOfBytes = 10 * sizeof(WCHAR) ;
// 10 * 2 = 20 Bytes.
// 1 [WCHAR][2] takes 2 Bytes
StringCchCat ::
cchDest [in]类型:size_t目标缓冲区的大小, in 字符即可。最大字符数 允许的是STRSAFE_MAX_CCH。
实施例::
WCHAR wszTemp[10] ;
DWORD dwNumberOfCharacters = _countof(wszTemp) ;
// 10 Characters.
// 1 [WCHAR][2] takes 2 Bytes that defines 1 character in UNICODE.