C++ StringCbCat和StringCchCat API之间有什么区别
StringCbCat: StringCchCat: 目前我正在编写一个C++程序来处理TCHAR字符串。我发现这两个Windows API,一个是StringCbCat,另一个是StringCchCat。它们似乎都能够为TCHAR字符串执行strcat()函数。但是如果他们是一样的,为什么给他们两个不同的名字呢?我试过谷歌,但没有成功 有人知道这有什么不同吗?还是它们都一样 其他StringCbxxx和StringCchxxx函数,如StringCbLength和StringCchLength,也是如此: cbDest[in]类型:大小\u t目标缓冲区的大小,in 字节。最大数量的 允许的字节数为STRSAFE_MAX_CCH*sizeof(TCHAR) 例如:C++ StringCbCat和StringCchCat API之间有什么区别,c++,winapi,visual-c++,C++,Winapi,Visual C++,StringCbCat: StringCchCat: 目前我正在编写一个C++程序来处理TCHAR字符串。我发现这两个Windows API,一个是StringCbCat,另一个是StringCchCat。它们似乎都能够为TCHAR字符串执行strcat()函数。但是如果他们是一样的,为什么给他们两个不同的名字呢?我试过谷歌,但没有成功 有人知道这有什么不同吗?还是它们都一样 其他StringCbxxx和StringCchxxx函数,如StringCbLength和StringCchLength
WCHAR wszTemp[10] ;
DWORD dwNumberOfBytes = 10 * sizeof(WCHAR) ;
// 10 * 2 = 20 Bytes.
// 1 [WCHAR][2] takes 2 Bytes
WCHAR wszTemp[10] ;
DWORD dwNumberOfCharacters = _countof(wszTemp) ;
// 10 Characters.
// 1 [WCHAR][2] takes 2 Bytes that defines 1 character in UNICODE.
::
cchDest[in]类型:大小\t目标缓冲区的大小,in
字符。最大字符数
允许为STRSAFE_MAX_CCH
例如:
WCHAR wszTemp[10] ;
DWORD dwNumberOfBytes = 10 * sizeof(WCHAR) ;
// 10 * 2 = 20 Bytes.
// 1 [WCHAR][2] takes 2 Bytes
WCHAR wszTemp[10] ;
DWORD dwNumberOfCharacters = _countof(wszTemp) ;
// 10 Characters.
// 1 [WCHAR][2] takes 2 Bytes that defines 1 character in UNICODE.
哦,愚蠢的我,没有看到区别。谢谢你,伙计!顺便说一句,“StrSafe”API最近被弃用,取而代之的是“安全CRT”,因此您应该使用strcat_s()。或者更确切地说,您应该使用wcscat_s(),因为ASCII和TCHAR现在也不赞成使用UNICODE。StrSafe对于针对未实现“安全CRT”功能的非Microsoft平台仍然有用。