Používání akce wmain
Specifické pro Microsoft
V programovacím modelu Unicode můžete definovat širokoúhlou verzi main
funkce. Místo toho main
použijtewmain
, pokud chcete psát přenosný kód, který je v souladu s programovacím modelem Unicode.
Podobně jako main
u funkce platí několik omezení, která neplatí pro žádné jiné funkce jazyka wmain
C. Funkce wmain
:
- Nelze deklarovat jako
inline
. - Nelze deklarovat jako
static
. - Nelze si nechat vzít jeho adresu.
- Z programu se nedá volat.
Podpis wmain
funkce
Funkce wmain
nemá deklaraci, protože je integrovaná do jazyka. Pokud ano, syntaxe deklarace pro wmain
by vypadala takto:
int wmain( void );
int wmain( int argc, wchar_t *argv[ ] );
int wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] );
Funkce wmain
je deklarována implicitně pomocí jednoho z těchto podpisů. Při definování wmain
funkce můžete použít kterýkoli z těchto podpisů. Následně je možné do aplikace předat argumenty širokých znaků a volitelně ukazatel prostředí širokých znaků. Kompilátor Microsoftu také umožňuje wmain
mít návratový typ, void
pokud není vrácena žádná hodnota. Parametry argv
a envp
lze wmain
také definovat jako typ wchar_t**
. Další informace o argumentech najdete v popisu argumentu.
Prostředí envp
Pokud program používá main
funkci, vytvoří vícebajtové prostředí při spuštění programu knihovna za běhu. Širokoúhlá kopie prostředí se vytvoří pouze v případě potřeby (například voláním _wgetenv
funkcí nebo _wputenv
). Existuje-li již prostředí MBCS, je při prvním volání _wputenv
nebo při prvním volání _wgetenv
vytvořeno odpovídající prostředí řetězce širokého znaku, na které je následně odkázáno pomocí globální proměnné _wenviron
, což je verze širokého znaku globální proměnné _environ
. V tomto okamžiku vedle sebe existují dvě kopie prostředí (znaková sada MBCS a Unicode), které jsou udržovány v operačním systému po celou dobu trvání aplikace.
Podobně platí, že pokud program používá wmain
funkci, vytvoří se při spuštění programu prostředí s širokými znaky, na které odkazuje globální proměnná _wenviron
. Při prvním volání _putenv
nebo getenv
se vytvoří prostředí MBCS (ASCII) a odkazuje na ho _environ
globální proměnná.
Další informace o prostředí MBCS najdete v tématu Internacionalizace.
END – specifické pro Microsoft
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro