Udostępnij za pośrednictwem


Korzystanie z akcji wmain

Specyficzne dla firmy Microsoft

W modelu programowania Unicode można zdefiniować szeroką wersję main funkcji. Użyj wmain zamiast main , jeśli chcesz napisać przenośny kod zgodny z modelem programowania Unicode.

Podobnie jak mainw przypadku funkcji , do wmain funkcji, która nie ma zastosowania do żadnych innych funkcji języka C. Funkcja wmain :

  • Nie można zadeklarować jako inline.
  • Nie można zadeklarować jako static.
  • Nie można podjąć jego adresu.
  • Nie można wywołać z programu.

Podpis wmain funkcji

Funkcja wmain nie ma deklaracji, ponieważ jest wbudowana w język. Jeśli tak, składnia deklaracji dla wmain elementu będzie wyglądać następująco:

int wmain( void );
int wmain( int argc, wchar_t *argv[ ] );
int wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] );

Funkcja wmain jest zadeklarowana niejawnie przy użyciu jednego z tych podpisów. Podczas definiowania wmain funkcji można użyć dowolnego z tych podpisów. Następnie można przekazać argumenty o szerokim znaku i opcjonalnie wskaźnik środowiska o szerokim znaku do programu. Kompilator firmy Microsoft umożliwia wmain również zwracanie typu void , gdy żadna wartość nie jest zwracana. Parametry argv i envp do można również zdefiniować wmain jako typ wchar_t**. Aby uzyskać więcej informacji na temat argumentów, zobacz Opis argumentu.

Środowisko envp

Jeśli program używa main funkcji, środowisko wielobajtowe jest tworzone przez bibliotekę czasu wykonywania podczas uruchamiania programu. Kopia całego środowiska jest tworzona tylko w razie potrzeby (na przykład przez wywołanie _wgetenv funkcji lub _wputenv ). Przy pierwszym wywołaniu metody _wputenvlub przy pierwszym wywołaniu metody , jeśli _wgetenv środowisko MBCS już istnieje, zostanie utworzone odpowiednie środowisko ciągów wieloznakowych, a następnie jest wskazywane przez _wenviron zmienną globalną, która jest wersją _environ zmiennej globalnej o szerokim znaku. W tym momencie istnieją jednocześnie dwie kopie środowiska (MBCS i Unicode) i są obsługiwane przez system operacyjny w całym życiu programu.

Podobnie, jeśli program używa wmain funkcji, środowisko szerokiego znaku jest tworzone podczas uruchamiania programu i jest wskazywane przez zmienną _wenviron globalną. Środowisko MBCS (ASCII) jest tworzone przy pierwszym wywołaniu metody _putenv lub getenv, i jest wskazywane przez zmienną _environ globalną.

Aby uzyskać więcej informacji na temat środowiska MBCS, zobacz Internationalization (Internacjonalizacja).

END Microsoft Specific

Zobacz też

main wykonywanie funkcji i programu