Função SHAnsiToAnsi (shlwapi.h)

[Essa função está disponível por meio do Windows XP e do Windows Server 2003. Ele pode estar alterado ou indisponível nas versões subsequentes do Windows.]

Copia uma cadeia de caracteres ANSI.

Sintaxe

int SHAnsiToAnsi(
  [in]  PCSTR pszSrc,
  [out] PSTR  pszDst,
        int   cchBuf
);

Parâmetros

[in] pszSrc

Tipo: LPCSTR

Um ponteiro para uma cadeia de caracteres ANSI terminada em nulo a ser convertida em Unicode.

[out] pszDst

Tipo: LPWSTR

Um ponteiro para um buffer que, quando essa função retorna com êxito, recebe os caracteres copiados do pszSrc. O buffer deve ser grande o suficiente para conter o número de caracteres especificado pelo parâmetro cchBuf , incluindo uma sala para um caractere nulo de terminação.

cchBuf

Tipo: int

O número de caracteres que podem ser contidos pelo buffer apontado por pszDst. Esse parâmetro deve ser maior que zero.

Retornar valor

Tipo: int

Retorna o número de caracteres gravados em pszDst, incluindo o caractere nulo de terminação. Retorna 0 se não tiver êxito.

Comentários

Aviso de segurança: Usar essa função incorretamente pode comprometer a segurança do aplicativo. Por exemplo, se o buffer pszDst não for grande o suficiente para conter o número de caracteres especificado por cchBuf, poderá ocorrer uma sobrecarga de buffer. Os estouros de buffer podem causar um ataque de negação de serviço contra um aplicativo se ocorrer uma violação de acesso. Na pior das hipóteses, uma sobrecarga de buffer pode permitir que um invasor injete código executável em seu processo, especialmente se pszDst for um buffer baseado em pilha. Observe que a cadeia de caracteres de saída será truncada silenciosamente se o buffer não for grande o suficiente. Isso pode resultar em canonização ou outras vulnerabilidades de segurança.

Se o buffer pszDst não for grande o suficiente para conter toda a cadeia de caracteres de saída convertida, a cadeia de caracteres será truncada para caber no buffer. Não há como detectar que a cadeia de caracteres de retorno foi truncada. A cadeia de caracteres sempre será terminada em nulo, mesmo que tenha sido truncada. Essa função tem o cuidado de não truncar entre os bytes de lead e trail de um par de caracteres DBCS. Nesse caso, somente os caracteres cchBuf-1 são retornados.

Se os buffers pszSrc e pszDst se sobrepõem, o comportamento da função será indefinido.

Nota Não suponha que a função não tenha alterado nenhum dos caracteres no buffer de saída que seguem o caractere nulo de terminação da cadeia de caracteres. O conteúdo do buffer de saída após o caractere nulo de terminação da cadeia de caracteres é indefinido, até e incluindo o último caractere no buffer.
 

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional, Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server, Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shlwapi.h
DLL Shlwapi.dll (versão 5.0 ou posterior)

Confira também

StringCbCopy

StringCbCopyEx

StringCbCopyN

StringCbCopyNEx

StringCbLength

StringCchCopy

StringCchCopyEx

StringCchCopyN

StringCchCopyNEx

StringCchLength