GetLocaleInfoA 함수(winnls.h)

식별자가 지정한 로캘에 대한 정보를 검색합니다.

참고 상호 운용성을 위해 Microsoft가 새 로캘에 대한 로캘 식별자 대신 로캘 이름을 사용하도록 마이그레이션하기 때문에 애플리케이션은 GetLocaleInfoEx 함수를 GetLocaleInfo 에 선호해야 합니다. Windows Vista 이상에서만 실행되는 모든 애플리케이션은 GetLocaleInfoEx를 사용해야 합니다.
참고 글로벌 호환성을 위해 애플리케이션은 유니코드 "W" API 양식을 "A" 양식에 선호해야 합니다. GetLocaleInfoA는 문자 데이터를 제한하며, 특히 전역적으로 사용하도록 설정된 애플리케이션에서 사용자에게 손상된 것으로 나타날 수 있습니다. 이 API의 경우 GetLocaleInfoEx 는 유니코드이므로 선호되며 최신 로캘 이름 표준도 지원합니다.
 

구문

int GetLocaleInfoA(
  [in]            LCID   Locale,
  [in]            LCTYPE LCType,
  [out, optional] LPSTR  lpLCData,
  [in]            int    cchData
);

매개 변수

[in] Locale

정보를 검색할 로캘 식별자입니다. MAKELCID 매크로를 사용하여 로캘 식별자를 만들거나 다음 미리 정의된 값 중 하나를 사용할 수 있습니다.

[in] LCType

검색할 로캘 정보입니다. 자세한 정의는 GetLocaleInfoExLCType 매개 변수를 참조하세요.

참고GetLocaleInfo의 경우 LOCALE_USE_CP_ACP 값은 ANSI 버전과만 관련이 있습니다.
 

[out, optional] lpLCData

이 함수가 요청된 로캘 정보를 검색하는 버퍼에 대한 포인터입니다. cchData가 0으로 설정된 경우 이 포인터는 사용되지 않습니다. 자세한 내용은 주의 섹션을 참조하세요.

[in] cchData

lpLCData로 표시된 데이터 버퍼의 크기(TCHAR 값)입니다. 또는 애플리케이션에서 이 매개 변수를 0으로 설정할 수 있습니다. 이 경우 함수는 lpLCData 매개 변수를 사용하지 않고 종료 null 문자를 포함하여 필요한 버퍼 크기를 반환합니다.

반환 값

성공하면 로캘 데이터 버퍼에서 검색된 문자 수를 반환하고 cchData 는 0이 아닌 값입니다. 함수가 성공하면 cchData 가 0이 아니고 LOCALE_RETURN_NUMBER 지정되면 반환 값은 데이터 버퍼에서 검색된 정수의 크기입니다. 즉, 함수의 유니코드 버전에 대해 2, ANSI 버전의 경우 4입니다. 함수가 성공하고 cchData 값이 0인 경우 반환 값은 로캘 데이터 버퍼에 대해 null 문자를 포함한 문자의 필수 크기입니다.

이 함수는 성공하지 못하면 0을 반환합니다. 확장된 오류 정보를 가져오기 위해 애플리케이션은 GetLastError를 호출할 수 있으며, 다음 오류 코드 중 하나를 반환할 수 있습니다.

  • ERROR_INSUFFICIENT_BUFFER. 제공된 버퍼 크기가 충분히 크지 않거나 NULL로 잘못 설정되었습니다.
  • ERROR_INVALID_FLAGS. 플래그에 제공된 값이 잘못되었습니다.
  • ERROR_INVALID_PARAMETER. 매개 변수 값이 잘못되었습니다.

설명

이 함수의 작업에 대해서는 GetLocaleInfoEx에 대한 비고를 참조하세요.

참고LCType 매개 변수가 LOCALE_FONTSIGNATURE 지정된 경우에도 cchData 및 함수 반환은 여전히 TCHAR 수입니다. ANSI 및 유니코드 버전의 함수에 대한 개수는 다릅니다. 애플리케이션이 LOCALE_FONTSIGNATURE 사용하여 GetLocaleInfo 의 제네릭 버전을 호출하는 경우 cchData 를 sizeof(LOCALESIGNATURE) / sizeof(TCHAR)로 안전하게 지정할 수 있습니다.
 
다음 예제에서는 텍스트가 아닌 값의 버퍼 크기를 올바르게 처리합니다.
int   ret;
CALID calid;
DWORD value;

ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
                    LOCALE_ICALENDARTYPE | LOCALE_RETURN_NUMBER,
                    (LPTSTR)&value,
                    sizeof(value) / sizeof(TCHAR) );
calid = value;

LOCALESIGNATURE LocSig;

ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
                    LOCALE_FONTSIGNATURE,
                    (LPWSTR)&LocSig,
                    sizeof(LocSig) / sizeof(TCHAR) );

이 함수의 ANSI 버전에서 검색한 ANSI 문자열은 로캘 식별자에 대한 기본 ANSI 코드 페이지를 기반으로 유니코드에서 ANSI로 변환됩니다. 그러나 LOCALE_USE_CP_ACP 지정한 경우 변환은 시스템 기본 ANSI 코드 페이지를 기반으로 합니다.

이 함수의 ANSI 버전을 유니코드 전용 로캘 식별자에 사용하면 운영 체제에서 시스템 코드 페이지를 사용하기 때문에 함수가 성공할 수 있습니다. 그러나 시스템 코드 페이지에서 정의되지 않은 문자는 문자열에 물음표(?)로 표시됩니다.

참고

winnls.h 헤더는 GETLocaleInfo를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 winnls.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

GetLocaleInfoEx

GetSystemDefaultLCID

GetUserDefaultLCID

국가 언어 지원

국가 언어 지원 함수

로캘 정보 검색 및 설정

SetLocaleInfo