GetStringTypeExW 함수(stringapiset.h)
메모
이 API에는 특정 유니코드 문자, 특히 보조 범위에 있는 문자에 대한 불완전/오래된 정보가 있을 수 있습니다. 보다 정확하고 포괄적인 유니코드 문자 형식 정보를 보려면 u_charType, u_islower, u_isspace및 u_ispunct같은 동등한 ICU API를 사용하는 것이 좋습니다. Windows에서 ICU API를 사용하는 방법에 대한 지침은 WindowsICU 시작
지정된 소스 문자열의 문자에 대한 문자 형식 정보를 검색합니다. 문자열의 각 문자에 대해 함수는 출력 배열의 해당 16비트 요소에서 하나 이상의 비트를 설정합니다. 각 비트는 지정된 문자 형식(예: 문자, 숫자 또는 둘 다)을 식별합니다.
통사론
BOOL GetStringTypeExW(
[in] LCID Locale,
[in] DWORD dwInfoType,
[in] _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
[in] int cchSrc,
[out] LPWORD lpCharType
);
매개 변수
[in] Locale
로캘을 지정하는 로캘 식별자. 이 값은 ANSI 코드 페이지를 고유하게 정의합니다. MAKELCID 매크로를 사용하여 로캘 식별자를 만들거나 다음 미리 정의된 값 중 하나를 사용할 수 있습니다.
Windows Vista 이상: 다음 사용자 지정 로캘 식별자도 지원됩니다.[in] dwInfoType
검색할 문자 형식 정보를 지정하는 플래그입니다. 가능한 플래그 값은 GetStringTypeWdwInfoType 매개 변수를 참조하세요. 문자 형식 비트에 대한 자세한 내용은 GetStringTypeW대한 설명을 참조하세요.
[in] lpSrcStr
문자 형식을 검색할 문자열에 대한 포인터입니다. cchSrc 음수 값으로 설정된 경우 문자열은 null로 종료되는 것으로 간주됩니다.
[in] cchSrc
lpSrcStr
[out] lpCharType
16비트 값 배열에 대한 포인터입니다. 이 배열의 길이는 원본 문자열의 각 문자에 대해 하나의 16비트 값을 받을 수 있을 만큼 커야 합니다. cchSrc 음수가 아니면 lpCharTypecchSrc 요소가 있는 단어 배열이어야 합니다. cchSrc 음수로 설정된 경우 lpCharTypelpSrcStr + 1 요소가 있는 단어 배열입니다. 함수가 반환되면 이 배열에는 소스 문자열의 각 문자에 해당하는 한 단어가 포함됩니다.
반환 값
성공하면 0이 아닌 값을 반환하고, 그렇지 않으면 0을 반환합니다. 확장 오류 정보를 가져오기 위해 애플리케이션은 다음 오류 코드 중 하나를 반환할 수 있는 GetLastError호출할 수 있습니다.
- ERROR_INVALID_FLAGS. 플래그에 제공된 값이 잘못되었습니다.
- ERROR_INVALID_PARAMETER. 매개 변수 값이 잘못되었습니다.
발언
문자열 함수 사용에 대한 개요는 Strings참조하세요.
제공된 로캘에 대한 ANSI 코드 페이지를 사용하여 이 함수는 원본 문자열을 ANSI에서 유니코드로 변환합니다. 그런 다음 문자 형식 정보에 대한 각 유니코드 문자를 분석합니다.
이 함수의 ANSI 버전은 원본 문자열을 유니코드로 변환하고 해당 GetStringTypeW 함수를 호출합니다. 따라서 출력 버퍼의 단어는 원래 ANSI 문자열이 아니라 해당 유니코드에 해당합니다. ANSI에서 유니코드로 변환하면 문자열 길이가 변경될 수 있습니다. 예를 들어 한 쌍의 ANSI 문자가 단일 유니코드 문자에 매핑될 수 있습니다. 따라서 출력 버퍼의 단어와 원래 ANSI 문자열의 문자 간의 대응은 멀티바이트 문자열과 같은 모든 경우에 일대일이 아닙니다. 따라서 이 함수의 ANSI 버전은 다중 문자 문자열에 대해 제한됩니다. 대신 함수의 유니코드 버전을 사용하는 것이 좋습니다.
이 함수는 GetStringTypeA 및 GetStringTypeW간의 매개 변수 차이로 인한 제한을 우회합니다. 매개 변수 차이로 인해 애플리케이션은 #define 유니코드 스위치를 사용하여 GetStringType* 함수의 적절한 ANSI 또는 유니코드 버전을 자동으로 호출할 수 없습니다. 반면 GetStringTypeEx
이 함수의 ANSI 버전이 유니코드 전용 로캘 식별자와 함께 사용되는 경우 운영 체제에서 시스템 코드 페이지를 사용하기 때문에 함수가 성공할 수 있습니다. 그러나 시스템 코드 페이지에서 정의되지 않은 문자는 문자열에 물음표(?)로 표시됩니다.
lpSrcStr 및 lpCharType 매개 변수의 값은 동일하지 않아야 합니다. 동일한 경우 함수는 ERROR_INVALID_PARAMETER함께 실패합니다.
로캘 매개 변수는 유니코드로 문자열 변환을 수행하는 데만 사용됩니다. 애플리케이션에서 제공하는 CTYPE* 값과는 아무 상관이 없습니다. 이러한 값은 유니코드 코드 포인트에 의해서만 결정되며 로캘에 따라 달라지지 않습니다. 예를 들어 그리스어 문자는 로캘값에 대해 C1_ALPHA 지정됩니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | stringapiset.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |
참고 항목
GetStringTypeW