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