Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Эта функция доступна через Windows XP и Windows Server 2003. Он может быть изменен или недоступен в последующих версиях Windows.]
Преобразует строку из кодовой страницы Юникода в кодовую страницу ANSI.
Синтаксис
int SHUnicodeToAnsi(
[in] PCWSTR pwszSrc,
[out] PSTR pszDst,
int cchBuf
);
Параметры
[in] pwszSrc
Тип: PCWSTR
Указатель на строку Юникода, завершаемую null, для преобразования в ANSI.
[out] pszDst
Тип: PSTR
Указатель на буфер, который, когда эта функция возвращается успешно, получает преобразованные символы. Буфер должен быть достаточно большим, чтобы содержать число символов CHAR , указанных параметром cchBuf , включая комнату для завершающегося символа NULL.
cchBuf
Тип: int
Число значений CHAR , которые могут содержаться буфером, на который указывает pszDst. Значение, назначенное параметру, должно быть больше нуля.
Возвращаемое значение
Тип: int
Возвращает количество значений CHAR , записанных в выходной буфер, включая завершающийся символ NULL. Возвращает значение 0, если не удалось.
Замечания
Предупреждение системы безопасности: Использование этой функции неправильно может компрометации безопасности приложения. Например, если буфер pszDst недостаточно велик, чтобы содержать количество символов, указанных cchBuf, может произойти переполнение буфера. Переполнение буфера может привести к атаке типа "отказ в обслуживании" в приложении, если возникает нарушение доступа. В худшем случае переполнение буфера может позволить злоумышленнику внедрить исполняемый код в процесс, особенно если pszDst является буфером на основе стека. Кроме того, выходная строка автоматически усечена, если она слишком велика для буфера. Это может привести к канонизации или другим уязвимостям системы безопасности.
Если буфер pszDst недостаточно велик, чтобы содержать всю преобразованную выходную строку, строка усечена для соответствия буферу. Невозможно обнаружить, что возвращаемая строка усечена. Строка всегда будет завершаться значением NULL, даже если она была усечена. Эта функция не усечена между свинцом и конечными байтами пары символов DBCS. В этом случае возвращаются только символы cchBuf-1.
Если буферы pwszSrc и pszDst перекрываются, поведение функции не определено.
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows 2000 Профессиональный, Windows XP [только классические приложения] |
| минимальный поддерживаемый сервер | Windows 2000 Server, Windows Server 2003 [только классические приложения] |
| целевая платформа | Виндоус |
| Header | shlwapi.h |
| Library | Shlwapi.lib |
| DLL | Shlwapi.dll (версия 5.0 или более поздняя версия) |
См. также
StringCchLength