Sdílet prostřednictvím


Používání akce wmain

Specifické pro Microsoft

V programovacím modelu Unicode můžete definovat širokoznakovou verzi main funkce. main Místo wmain toho, pokud chcete napsat přenosný kód, který dodržuje programovací model Unicode.

Podobně jako mainu funkce, která neplatí pro žádné jiné funkce jazyka wmain C, platí několik omezení. Funkce wmain :

  • Nelze deklarovat jako inline.
  • Nelze deklarovat jako static.
  • Nemůže mít jeho adresu.
  • Nelze volat z programu.

Podpis wmain funkce

Funkce wmain nemá deklaraci, protože je integrovaná do jazyka. Pokud ano, syntaxe deklarace by wmain 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í funkce wmain 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 návratový typ void , pokud není vrácena žádná hodnota. Parametry argv a envp parametry wmain lze také definovat jako typ wchar_t**. Další informace o argumentech naleznete v tématu Popis argumentu.

Prostředí envp

Pokud váš program používá main funkci, prostředí s vícebajtovými znaky je vytvořeno knihovnou runtime při spuštění programu. Kopie prostředí s širokým znakem se vytvoří pouze v případě potřeby (například voláním _wgetenv funkcí)._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 váš program používá wmain funkci, vytvoří se při spuštění programu široké znakové prostředí, na které _wenviron odkazuje globální proměnná. Prostředí MBCS (ASCII) se vytvoří při prvním volání _putenv nebo getenva odkazuje na globální proměnnou _environ .

Další informace o prostředí MBCS naleznete v tématu Internationalization.

END Microsoft Specific

Viz také

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