Função StringCbLengthA (strsafe.h)
Determina se uma cadeia de caracteres excede o comprimento especificado, em bytes.
StringCbLength é uma substituição para as seguintes funções:
Sintaxe
STRSAFEAPI StringCbLengthA(
[in] STRSAFE_PCNZCH psz,
[in] size_t cbMax,
[out] size_t *pcbLength
);
Parâmetros
[in] psz
Tipo: LPCTSTR
A cadeia de caracteres cujo comprimento deve ser verificado.
[in] cbMax
Tipo: size_t
O número máximo de bytes permitidos em psz, incluindo aqueles usados para o caractere nulo de terminação. Esse valor não pode exceder STRSAFE_MAX_CCH * sizeof(TCHAR)
.
[out] pcbLength
Tipo: size_t*
O número de bytes em psz, excluindo aqueles usados para o caractere nulo de terminação. Esse valor só será válido se pcb não for NULL e a função for bem-sucedida.
Retornar valor
Tipo: HRESULT
Essa função pode retornar um dos valores a seguir. É altamente recomendável que você use as macros SUCCEEDED e FAILED para testar o valor retornado dessa função.
Código de retorno | Descrição |
---|---|
|
A cadeia de caracteres em psz não era NULL e o comprimento da cadeia de caracteres (incluindo o caractere nulo de terminação) é menor ou igual a caracteres cbMax . |
|
O valor em psz é NULL, cbMax é maior que STRSAFE_MAX_CCH * sizeof(TCHAR) ou psz é maior que cbMax.
|
Observe que essa função retorna um valor HRESULT , ao contrário das funções que ela substitui.
Comentários
Em comparação com as funções que ele substitui, StringCbLength é uma ferramenta adicional para tratamento de buffer adequado em seu código. A má manipulação de buffer está implicada em muitos problemas de segurança que envolvem estouros de buffer.
StringCbLength pode ser usado em sua forma genérica ou em suas formas mais específicas. O tipo de dados da cadeia de caracteres determina a forma dessa função que você deve usar.
Tipo de dados da cadeia de caracteres | Literal da cadeia de caracteres | Função |
---|---|---|
char | “cadeia de caracteres” | StringCbLengthA |
TCHAR | TEXT("string") | StringCbLength |
WCHAR | L"string" | StringCbLengthW |
UnalignedStringCbLength é um alias para essa função.
Observação
O cabeçalho strsafe.h define StringCbLength como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP com SP2 [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2003 com SP1 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | strsafe.h |