Функция 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 перекрываются, поведение функции не определено.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional, Windows XP [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server, Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | shlwapi.h |
DLL | Shlwapi.dll (версия 5.0 или более поздняя) |
См. также раздел
StringCchLength