Informações sobre Strsafe.h
A má manipulação de buffer está implicada em muitos problemas de segurança que envolvem estouros de buffer. As funções definidas em Strsafe.h fornecem processamento adicional para tratamento de buffer adequado em seu código. Por esse motivo, eles se destinam a substituir suas contrapartes internas do C/C++, bem como implementações específicas do Windows. Strsafe.h está disponível no SDK do Windows a partir do Windows XP com Service Pack 2 (SP2).
As vantagens das funções Strsafe incluem:
O tamanho do buffer de destino sempre é fornecido à função para garantir que a função não escreva após o final do buffer.
É garantido que os buffers sejam encerrados em nulo, mesmo que a operação trunque o resultado pretendido.
Todas as funções retornam um valor HRESULT , com apenas um código de êxito possível (S_OK).
Cada função está disponível em uma versão de contagem de caracteres correspondente ("cch") ou contagem de bytes ("cb").
A maioria das funções tem uma versão estendida ("Ex") disponível para funcionalidade avançada.
Confira as seções a seguir para obter detalhes.
- Funções de contagem de caracteres
- Funções de contagem de bytes
- Usando Strsafe.h
- Tópicos relacionados
Funções de contagem de caracteres
As funções a seguir usam uma contagem de caracteres em vez de uma contagem de bytes.
Função | Substitui |
---|---|
, | |
Funções de contagem de bytes
As funções a seguir usam uma contagem de bytes em vez de uma contagem de caracteres.
Função | Substitui |
---|---|
Usando Strsafe.h
Para usar as funções Strsafe embutidas, inclua o arquivo de cabeçalho, conforme mostrado aqui, seguindo as instruções #include para todos os outros arquivos de cabeçalho.
#include <strsafe.h>
Para usar as funções no formulário de biblioteca, inclua a seguinte instrução antes de incluir Strsafe.h. No entanto, é recomendável que você use as funções embutidas.
#define STRSAFE_LIB
Observação
: as seguintes funções devem ser usadas como funções embutidas: StringCbGets, StringCbGetsEx, StringCchGets e StringCchGetsEx.
Quando você incluir Strsafe.h em seu arquivo, as funções mais antigas substituídas pelas funções Strsafe.h serão preteridas. As tentativas de usar essas funções mais antigas resultarão em um erro do compilador informando para você usar as funções mais recentes. Se você quiser substituir esse comportamento, inclua a instrução a seguir antes de incluir Strsafe.h.
#define STRSAFE_NO_DEPRECATE
Para permitir apenas funções de contagem de caracteres, inclua a seguinte instrução antes de incluir Strsafe.h.
#define STRSAFE_NO_CB_FUNCTIONS
Para permitir apenas funções de contagem de bytes, inclua a instrução a seguir antes de incluir Strsafe.h.
#define STRSAFE_NO_CCH_FUNCTIONS
Observação
Você pode definir STRSAFE_NO_CB_FUNCTIONS ou STRSAFE_NO_CCH_FUNCTIONS, mas não ambos.
Algumas funções Strsafe têm versões com reconhecimento de localidade. Por padrão, o cabeçalho não declara essas funções. Para habilitar essas declarações, inclua a seguinte instrução macro antes de incluir Strsafe.h.
#define STRSAFE_LOCALE_FUNCTIONS
O comprimento máximo da cadeia de caracteres com suporte é de 2.147.483.647 caracteres (STRSAFE_MAX_CCH), ANSI ou Unicode.
Tópicos relacionados
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de