LCMapStringA 함수(winnls.h)
식별자로 지정된 로캘의 경우 지정된 변환을 사용하여 한 입력 문자 문자열을 다른 문자열에 매핑하거나 입력 문자열에 대한 정렬 키를 생성합니다.
통사론
int LCMapStringA(
[in] LCID Locale,
[in] DWORD dwMapFlags,
[in] LPCSTR lpSrcStr,
[in] int cchSrc,
[out, optional] LPSTR lpDestStr,
[in] int cchDest
);
매개 변수
[in] Locale
로캘을 지정하는 로캘 식별자. MAKELCID 매크로를 사용하여 로캘 식별자를 만들거나 다음 미리 정의된 값 중 하나를 사용할 수 있습니다.
다음 사용자 지정 로캘 식별자도 지원됩니다.[in] dwMapFlags
문자열 매핑 중에 사용할 변환 형식 또는 생성할 정렬 키의 형식을 지정하는 플래그입니다. 자세한 정의는 LCMapStringExdwMapFlags 매개 변수를 참조하세요.
[in] lpSrcStr
함수가 정렬 키 생성에 매핑하거나 사용하는 소스 문자열에 대한 포인터입니다. 이 문자열의 크기는 0일 수 없습니다.
[in] cchSrc
lpSrcStr
애플리케이션은 매개 변수를 음수 값으로 설정하여 원본 문자열이 null로 종료되도록 지정할 수 있습니다. 이 경우 LCMapString 문자열 매핑 모드에서 사용되는 경우 함수는 문자열 길이 자체를 계산하고 lpDestStr표시된 매핑된 문자열을 null로 종료합니다.
애플리케이션에서 이 매개 변수를 0으로 설정할 수 없습니다.
[out, optional] lpDestStr
이 함수가 매핑된 문자열 또는 정렬 키를 검색하는 버퍼에 대한 포인터입니다.
애플리케이션이 함수를 사용하여 정렬 키(LCMAP_SORTKEY)를 생성하는 경우:
- 정렬 키는 버퍼에 저장되고 불투명한 바이트 배열로 처리됩니다. 저장된 값은 임의 위치에 포함된 0바이트를 포함할 수 있습니다.
- 대상 문자열은 홀수 바이트를 포함할 수 있습니다. LCMAP_BYTEREV 플래그는 짝수 바이트만 반대로 바뀝니다. 정렬 키의 마지막 바이트(홀수 위치)는 반전되지 않습니다.
호출자가 문자열의 하위 집합을 명시적으로 요청하는 경우 호출자가 cchDest지정하지 않는 한 대상 문자열에는 종료 null 문자가 포함되지 않습니다.
이 함수가 실패하면 대상 버퍼에 부분 결과 또는 결과가 전혀 포함되지 않을 수 있습니다. 이 경우 모든 결과가 잘못된 것으로 간주되어야 합니다.
메모
LCMAP_UPPERCASE 또는 LCMAP_LOWERCASE 설정할 때 대상 문자열은 원본 문자열과 동일한 버퍼를 사용할 수 있습니다. 그러나 일부 조건에서는 반환된 대/소문자 문자열의 길이가 다를 수 있으므로 권장되지 않습니다.
[in] cchDest
lpDestStr
애플리케이션이 함수를 사용하여 정렬 키를 생성하는 경우 크기에 대한 바이트 수를 제공합니다. 이 바이트 수에는 정렬 키 0x00 종결자에 대한 공간이 포함되어야 합니다.
애플리케이션은 cchDest 0으로 설정할 수 있습니다. 이 경우 함수는 lpDestStr 매개 변수를 사용하지 않고 매핑된 문자열 또는 정렬 키에 필요한 버퍼 크기를 반환합니다.
반환 값
문자열 매핑에 사용할 때 함수가 성공하면 변환된 문자열의 문자 수를 반환합니다(자세한 내용은 cchSrc
문자열 매핑에 사용할 때 함수가 성공하면 정렬 키의 바이트 수가 반환됩니다.
이 함수는 성공하지 못하면 0을 반환합니다. 확장 오류 정보를 가져오기 위해 애플리케이션은 다음 오류 코드 중 하나를 반환할 수 있는 GetLastError호출할 수 있습니다.
- ERROR_INSUFFICIENT_BUFFER. 제공된 버퍼 크기가 충분히 크지 않거나 NULL
잘못 설정되었습니다. - ERROR_INVALID_FLAGS. 플래그에 제공된 값이 잘못되었습니다.
- ERROR_INVALID_PARAMETER. 매개 변수 값이 잘못되었습니다.
- ERROR_INSUFFICIENT_BUFFER. 제공된 버퍼 크기가 충분히 크지 않거나 NULL
잘못 설정되었습니다. - ERROR_INVALID_FLAGS. 플래그에 제공된 값이 잘못되었습니다.
- ERROR_INVALID_PARAMETER. 매개 변수 값이 잘못되었습니다.
발언
LCMapStringEx대한 설명은 참조하세요.
ANSI 버전의 LCMapString 지정된 로캘과 연결된 기본 Windows(ANSI) 코드 페이지를 기반으로 유니코드와 문자열을 매핑합니다. 이 함수의 ANSI 버전을 유니코드 전용 로캘과 함께 사용하면 운영 체제에서 시스템 기본 Windows ANSI 코드 페이지를 나타내는 CP_ACP 값을 사용하기 때문에 함수가 성공할 수 있습니다. 그러나 시스템 코드 페이지에서 정의되지 않은 문자는 문자열에 물음표(?)로 표시됩니다.
메모
winnls.h 헤더는 LCMapString을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winnls.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |
참고 항목
FindNLSString
GetNLSVersion
애플리케이션 정렬 처리