SHUnicodeToAnsi 함수(shlwapi.h)
[이 함수는 Windows XP 및 Windows Server 2003을 통해 사용할 수 있습니다. 이후 버전의 Windows에서는 변경되거나 사용하지 못할 수 있습니다.]
문자열을 유니코드 코드 페이지에서 ANSI 코드 페이지로 변환합니다.
구문
int SHUnicodeToAnsi(
[in] PCWSTR pwszSrc,
[out] PSTR pszDst,
int cchBuf
);
매개 변수
[in] pwszSrc
형식: PCWSTR
ANSI로 변환할 null로 끝나는 유니코드 문자열에 대한 포인터입니다.
[out] pszDst
형식: PSTR
이 함수가 성공적으로 반환될 때 변환된 문자를 수신하는 버퍼에 대한 포인터입니다. 버퍼는 종료 null 문자에 대한 공간을 포함하여 cchBuf 매개 변수에 지정된 CHAR 문자 수를 포함할 수 있을 만큼 커야 합니다.
cchBuf
형식: int
pszDst가 가리키는 버퍼에 포함될 수 있는 CHAR 값의 수입니다. 매개 변수에 할당된 값은 0보다 커야 합니다.
반환 값
형식: int
종료 null 문자를 포함하여 출력 버퍼에 기록된 CHAR 값의 수를 반환합니다. 실패하면 0을 반환합니다.
설명
보안 경고: 이 함수를 잘못 사용하면 애플리케이션의 보안이 손상됩니다. 예를 들어 pszDst 버퍼가 cchBuf에 지정된 문자 수를 포함할 만큼 크지 않으면 버퍼 오버런이 발생할 수 있습니다. 버퍼 오버런은 액세스 위반이 발생하는 경우 애플리케이션에 대한 서비스 거부 공격을 일으킬 수 있습니다. 최악의 경우 버퍼 오버런을 통해 공격자가 실행 코드를 프로세스에 삽입할 수 있습니다( 특히 pszDst 가 스택 기반 버퍼인 경우). 또한 출력 문자열이 버퍼에 비해 너무 크면 자동으로 잘립니다. 이로 인해 정식화 또는 기타 보안 취약성이 발생할 수 있습니다.
pszDst 버퍼가 변환된 전체 출력 문자열을 포함할 만큼 크지 않으면 버퍼에 맞게 문자열이 잘립니다. 반환 문자열이 잘렸는지 검색할 수 있는 방법은 없습니다. 문자열은 잘린 경우에도 항상 null로 종료됩니다. 이 함수는 DBCS 문자 쌍의 선행 바이트와 후행 바이트 사이에서 잘리지 않도록 주의합니다. 이 경우 cchBuf-1 문자만 반환됩니다.
pwszSrc 및 pszDst 버퍼가 겹치면 함수의 동작이 정의되지 않습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional, Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server, Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | shlwapi.h |
DLL | Shlwapi.dll(버전 5.0 이상) |
추가 정보
StringCchLength