StringCbCat和StringCchCat api的区别是什么?

What is the difference between StringCbCat and StringCchCat APIs

本文关键字:区别 是什么 api StringCchCat StringCbCat      更新时间:2023-10-16

StringCbCat: http://msdn.microsoft.com/en-us/library/windows/desktop/ms647495%28v=vs.85%29.aspxStringCchCat: http://msdn.microsoft.com/en-us/library/windows/desktop/ms647518%28v=vs.85%29.aspx

目前我正在写一个c++程序来处理TCHAR字符串。我发现这两个Windows api,一个是StringCbCat,另一个是StringCchCat。它们似乎都能够为TCHAR字符串执行strcat()函数。但如果它们是一样的,为什么要给它们取两个不同的名字呢?我试过谷歌,但没有运气。

有谁知道有什么不同吗?或者它们是一样的?

p。其他StringCbxxx和StringCchxxx函数也一样,如stringclength和StringCchLength

StringCbCat::

cbDest [in] Type: 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] Type: 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.