Freigeben über


_create_locale, _wcreate_locale

Erstellt ein locale-Objekt.

Syntax

_locale_t _create_locale(
   int category,
   const char *locale
);
_locale_t _wcreate_locale(
   int category,
   const wchar_t *locale
);

Parameter

category
Kategorie:

locale
Gebietsschemaspezifizierer.

Rückgabewert

Wenn ein gültiger locale wert und category angegeben wird, geben die Funktionen die angegebenen Gebietsschemaeinstellungen als _locale_t Objekt zurück. Die aktuellen Gebietsschemaeinstellungen des Programms werden nicht geändert.

Hinweise

Die _create_locale-Funktion ermöglicht das Erstellen eines Objekts, das bestimmte bereichsspezifische Einstellungen darstellt, die in gebietsschemaspezifischen Versionen vieler CRT-Funktionen (Funktionen mit dem Suffix _l) verwendet werden können. Das Verhalten ähnelt setlocale, mit dem Unterschied, dass die angegebenen Gebietsschemaeinstellungen nicht auf die aktuelle Umgebung angewendet werden, sondern in einer _locale_t-Struktur gespeichert werden, die zurückgegeben wird. Die _locale_t Struktur sollte verwendet _free_locale werden, wenn sie nicht mehr benötigt wird.

_wcreate_locale ist eine Breitzeichenversion von _create_locale. Das locale -Argument für _wcreate_locale ist eine Breitzeichenfolge. _wcreate_locale und _create_locale verhalten sich andernfalls identisch.

Das category-Argument gibt die betroffenen Teile des gebietsschemaspezifischen Verhaltens an. Die verwendeten Flags category und die Teile des Programms, die sie betreffen, sind wie in dieser Tabelle dargestellt:

category -Flag Betrifft
LC_ALL Alle unten aufgeführten Kategorien.
LC_COLLATE Die Funktionen strcoll, _stricoll, wcscoll, _wcsicoll, strxfrm, _strncoll, _strnicoll, _wcsncoll, _wcsnicoll und wcsxfrm.
LC_CTYPE Die Funktionen zur Zeichenbehandlung (außer isdigit, isxdigit, mbstowcs und mbtowc, die nicht betroffen sind).
LC_MONETARY Durch die localeconv-Funktion zurückgegebene Informationen zur Währungsformatierung.
LC_NUMERIC Dezimaltrennzeichen für die formatierten Ausgaberoutinen (wie printf), für die Datenkonvertierungsroutinen und für die nicht monetären Formatierungsinformationen, die von localeconv zurückgegeben werden. Zusätzlich zum Dezimalkommazeichen werden das Tausendertrennzeichen und die gruppierende Steuerelementzeichenfolge festgelegt, LC_NUMERIC die von localeconv.
LC_TIME Die Funktionen strftime und wcsftime.

Diese Funktion überprüft den category-Parameter und den locale-Parameter. Wenn der Category-Parameter nicht einer der Werte ist, die in der vorherigen Tabelle angegeben sind oder ist locale NULL, gibt die Funktion zurück NULL.

Das locale-Argument ist ein Zeiger auf eine Zeichenfolge, die das Gebietsschema angibt. Informationen zum Format des locale Arguments finden Sie unter Gebietsschemanamen, Sprachen und Zeichenfolgen für Land/Region.

Das locale Argument kann mehrere Arten von Werten annehmen: einen Gebietsschemanamen, eine Sprachzeichenfolge, eine Sprachzeichenfolge und einen Code für Land/Region, eine Codeseite oder eine Kombination aus Sprachzeichenfolge, Länder-/Regionscode und Codepage. Der Satz (der verfügbaren Gebietsschemanamen, Sprachen, Länder-/Regionscodes und Codeseiten) enthält alle, die von der Windows NLS-API unterstützt werden. Der Satz von Gebietsschemanamen _create_locale wird in Gebietsschemanamen, Sprachen und Zeichenfolgen für Land/Region beschrieben. Die von ihnen unterstützten _create_locale Sprachen- und Länder-/Regionszeichenfolgen werden in sprachenspezifischen Zeichenfolgen und Zeichenfolgen für Land/Region aufgeführt.

Weitere Informationen zu Gebietsschemaeinstellungen finden Sie unter setlocale, _wsetlocale.

Der vorherige Name dieser Funktion, __create_locale (mit zwei führenden Unterstrichen), ist veraltet.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.

Anforderungen

Routine Erforderlicher Header
_create_locale <locale.h>
_wcreate_locale <locale.h> oder <wchar.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// crt_create_locale.c
// Sets the current locale to "de-CH" using the
// setlocale function and demonstrates its effect on the strftime
// function.

#include <stdio.h>
#include <locale.h>
#include <time.h>

int main(void)
{
    time_t ltime;
    struct tm thetime;
    unsigned char str[100];
    _locale_t locale;

    // Create a locale object representing the German (Switzerland) locale
    locale = _create_locale(LC_ALL, "de-CH");
    time (&ltime);
    _gmtime64_s(&thetime, &ltime);

    // %#x is the long date representation, appropriate to
    // the current locale
    if (!_strftime_l((char *)str, 100, "%#x",
                     (const struct tm *)&thetime, locale))
    {
        printf("_strftime_l failed!\n");
    }
    else
    {
        printf("In de-CH locale, _strftime_l returns '%s'\n", str);
    }

    _free_locale(locale);

    // Create a locale object representing the default C locale
    locale = _create_locale(LC_ALL, "C");
    time(&ltime);
    _gmtime64_s(&thetime, &ltime);

    if (!_strftime_l((char *)str, 100, "%#x",
                     (const struct tm *)&thetime, locale))
    {
        printf("_strftime_l failed!\n");
    }
    else
    {
        printf("In 'C' locale, _strftime_l returns '%s'\n", str);
    }

    _free_locale(locale);
}
In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'

Siehe auch

Gebietsschemanamen, Sprachen und Zeichenfolgen für Land/Region
Sprachenzeichenfolgen
Zeichenfolgen für Land/Region
_free_locale
_configthreadlocale
setlocale
Gebietsschema
localeconv
_mbclen, mblen_mblen_l
strlen, , wcslen_mbslen, _mbslen_l, , _mbstrlen_mbstrlen_l
mbstowcs, _mbstowcs_l
mbtowc, _mbtowc_l
_setmbcp
setlocale, _wsetlocale
strcoll -Funktionen
strftime, , wcsftime_strftime_l_wcsftime_l
strxfrm, , wcsxfrm_strxfrm_l_wcsxfrm_l
wcstombs, _wcstombs_l
wctomb, _wctomb_l