Sdílet prostřednictvím


Mezinárodní povolení

Většina tradičních kódů jazyka C a jazyka C++ provádí předpoklady o manipulaci se znakem a řetězcem, který nepracuje správně pro mezinárodní aplikace.Zatímco knihovna MFC i běhová knihovna podporují kódování Unicode nebo znakovou sadu MBCS, je zde pro Vás stále práce.Tato část Vám vysvětluje význam "mezinárodního povolení" v aplikaci Visual C++:

  • Kódování Unicode i znaková sada MBCS jsou povoleny formou přenosných datových typů v seznamech parametru funkce knihovny MFC a vrací typy.Tyto typy jsou podmíněně definovány vhodnými způsoby v závislosti na tom, zda vaše sestavení definuje symbol _UNICODE nebo symbol _MBCS (což znamená sadu DBCS).Různé varianty knihoven knihovny MFC jsou automaticky propojeny s Vaší aplikací, v závislosti na těchto dvou symbolech, definovaných Vaším sestavením.

  • Kód třídy knihovny používá přenosné běhové funkce jiné prostředky k zajištění správného chování kódování Unicode nebo znakové sady MBCS.

  • Stále musíte zpracovat určité druhy mezinárodních úkolů ve Vašem kódu:

    • Použíjte stejné přenosné běhové funkce, které vytváří knihovna MFC přenosné pod každým prostředím.

    • Vytvořte literály řetězců a znaků, přenositelných pod každým prostředím, použitím makra _T.Další informace naleznete v tématu Mapování obecného textu v Tchar.h.

    • Učiňte opatření při analýze řetězců v rámci znakové sady MBCS.Tato opatření nejsou potřeba v rámci kódování Unicode.Další informace naleznete v tématu Tipy pro programování znakové sady MBCS.

    • Buďte opatrní, pokud ve Vaší aplikaci kombinujete znaky ANSI (8bitů) a znaky kódování Unicode (16bitů).Je možné používat znaky ANSI v některých částech Vašeho program a znaky kódování Unicode v jiných částech Vašeho programu, nemůžete je ale kombinovat ve stejném řetězci.

    • Neprovádějte pevné kódování řetězců ve Vaší aplikaci.Místo toho je vytvořte jako STRINGTABLE zdroje, jejich přidáním do .rc souboru aplikace.Vaše aplikace může být lokalizována bez nutnosti změny zdrojového kódu nebo opětovné kompilace.Další informace o STRINGTABLE zdrojích naleznete v tématu Editor řetězců.

[!POZNÁMKA]

Evropské sady a znakové sada MBCS mají některé znaky, jako jsou například písmena s diakritikou, s kódy znaků většími než 0x80.Vzhledem k tomu, že většinu kódu používá podepsané znaky, jsou tyto znaky větší než 0x80 rozšířeny popisem při převodu na int. Toto je problém pro indexování pole, protože znaky s rozšířeným popisem se stávají negativními indexy mimo pole.Jazyky používající znakovou sadu MBCS, jako je například japonské písmo jsou také jedinečné.Protože může znak obsahovat 1 nebo 2bajty, měli byste vždy manipulovat s oběmi bajty současně.

Viz také

Koncepty

Unicode a znaková sada MBCS

Strategie internacionalizace