Функция SHAnsiToAnsi (shlwapi.h)

[Эта функция доступна в Windows XP и Windows Server 2003. Он может быть изменен или недоступен в последующих версиях Windows.]

Копирует строку ANSI.

Синтаксис

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

Параметры

[in] pszSrc

Тип: LPCSTR

Указатель на строку ANSI, завершаемую null, которая должна быть преобразована в Юникод.

[out] pszDst

Тип: LPWSTR

Указатель на буфер, который при успешном возврате этой функции получает символы, скопированные из pszSrc. Буфер должен быть достаточно большим, чтобы содержать количество символов, заданное параметром cchBuf , включая пространство для завершающего символа NULL.

cchBuf

Тип: int

Количество символов, которые могут содержаться буфером, на который указывает pszDst. Этот параметр должен быть больше нуля.

Возвращаемое значение

Тип: int

Возвращает число символов, записанных в pszDst, включая завершающий символ NULL. Возвращает 0 в случае неудачного результата.

Комментарии

Предупреждение системы безопасности: Неправильное использование этой функции может поставить под угрозу безопасность приложения. Например, если буфер pszDst недостаточно велик, чтобы содержать количество символов, указанное в cchBuf, может произойти переполнение буфера. Переполнение буфера может привести к атаке типа "отказ в обслуживании" на приложение в случае нарушения доступа. В худшем случае переполнение буфера может позволить злоумышленнику внедрить исполняемый код в процесс, особенно если pszDst является буфером на основе стека. Обратите внимание, что выходная строка автоматически усекается, если буфер недостаточно велик. Это может привести к канонизации или другим уязвимостям системы безопасности.

Если буфер pszDst недостаточно велик, чтобы вместить всю преобразованную выходную строку, строка усекается в соответствии с буфером. Невозможно определить, что возвращаемая строка была усечена. Строка всегда будет завершаться null, даже если она была усечена. Эта функция следит за тем, чтобы не усекать между начальными и следовыми байтами пары символов DBCS. В этом случае возвращаются только символы cchBuf-1.

Если буферы pszSrc и pszDst перекрываются, поведение функции не определено.

Примечание Не предполагайте, что функция не изменяла символы в выходном буфере, которые следуют за завершающим символом NULL строки. Содержимое выходного буфера после завершающего символа NULL строки не определено, вплоть до последнего символа в буфере.
 

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional, Windows XP [только классические приложения]
Минимальная версия сервера Windows 2000 Server, Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header shlwapi.h
DLL Shlwapi.dll (версия 5.0 или более поздняя)

См. также раздел

StringCbCopy

StringCbCopyEx

StringCbCopyN

StringCbCopyNEx

StringCbLength

StringCchCopy

StringCchCopyEx

StringCchCopyN

StringCchCopyNEx

StringCchLength