Argumentbeschreibung
Der argc
-Parameter in den Funktionen main
und wmain
ist eine ganze Zahl, die angibt, wie viele Argumente über die Befehlszeile an das Programm übergeben werden. Da der Programmname als ein Argument gilt, ist der Wert von argc
mindestens 1.
Hinweise
Der argv
-Parameter ist ein Array von Zeigern auf auf NULL endende Zeichenfolgen, die die Programmargumente darstellen. Jedes Element des Arrays zeigt auf eine Zeichenfolgendarstellung eines Arguments, das an main
(oder wmain
) übergeben wird. (Informationen zu Arrays finden Sie unter Arraydeklarationen.) Der argv
-Parameter kann entweder als Array von Zeigern auf den Typ char
(char *argv[]
) oder als Zeiger auf Zeiger auf den Typ char
(char **argv
) deklariert werden. Bei wmain
kann der argv
-Parameter entweder als Array von Zeigern auf Typ wchar_t
(wchar_t *argv[]
) oder als Zeiger auf Zeiger vom Typ wchar_t
(wchar_t **argv
) deklariert werden.
Gemäß der Konvention ist argv[0]
der Befehl, mit dem das Programm aufgerufen wird. Allerdings es ist möglich, einen Prozess mit CreateProcess
auszuführen, und wenn Sie sowohl das erste als auch das zweite Argument (lpApplicationName
und lpCommandLine
) verwenden, ist argv[0]
möglicherweise nicht der Name der ausführbaren Datei. Verwenden Sie GetModuleFileName
, um den Namen der ausführbaren Datei abzurufen.
Der letzte Zeiger (argv[argc]
) ist NULL
. (Unter getenv
in der Laufzeitbibliotheksreferenz finden Sie Informationen über eine alternative Möglichkeit zum Abrufen von Umgebungsvariablen.)
Microsoft-spezifisch
Der Parameter envp
ist ein Zeiger auf einen Array von Zeichenfolgen, die mit NULL enden und die Werte darstellen, die in den Variablen der Benutzerumgebung festgelegt wurden. Der Parameter envp
kann als ein Array von Zeigern auf char
(char *envp[]
) deklariert werden oder als ein Zeiger auf Zeiger auf char
(char **envp
). In einer wmain
-Funktion kann der envp
-Parameter als Array von Zeigern auf wchar_t
(wchar_t *envp[]
) oder als Zeiger auf die Zeiger auf wchar_t
(wchar_t **envp
) deklariert werden. Das Ende des Arrays wird durch einen NULL*
-Zeiger angegeben. Der Umgebungsblock, der an main
oder wmain
übergeben wird, ist eine „eingefrorene“ Kopie der aktuellen Umgebung. Wenn Sie die Umgebung später durch einen Aufruf von_putenv
oder _wputenv
ändern, ändert sich die aktuelle Umgebung (die von getenv
/_wgetenv
und den Variablen _environ
oder _wenviron
zurückgegeben wird), der von envp
referenzierte Block ändert sich jedoch nicht. Der envp
-Parameter ist in C mit ANSI/ISO C89 kompatibel, in C++ jedoch eine Microsoft-Erweiterung.
Ende Microsoft-spezifisch