Sdílet prostřednictvím


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 mainu 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 getenvse 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é

main provádění funkcí a programů