000
05.04.2014, 22:32 Uhr
Hans
Library Walker (Operator)
|
Folgendes Programm:
C++: |
/* Datei: cmdline.c
Windows-Programm! Ermittelt die Kommandozeile unter Windows */ #include <windows.h> #include <stdio.h> #include <string.h>
main(int argc, char *argv[]) { char CommandLine[260], *clptr; clptr = GetCommandLine(); strcpy (CommandLine, GetCommandLine()); printf ("CMDline: %s\n", CommandLine); printf ("argv[0]: %s\n", argv[0]); return 0; } /* von main */
|
Man sollte erwarten, dass das Programm 2 mal das Gleiche liefert, nämlich seinen Namen inclusive des Verzeichnispfades und der Dateinamenserweiterung. In meinem Fall:
Code: |
C:\Daten\Watcom>cmdline CMDline: C:\Daten\Watcom\cmdline.exe argv[0]: C:\Daten\Watcom\cmdline.exe
|
Nun, im Debugger tut es das auch, aber wenn ich es aus einer normalen Konsole (Eingabeaufforderung) heraus starte, dann liefert es diese Ausgabe:
Code: |
C:\Daten\Watcom>cmdline CMDline: cmdline argv[0]: C:\Daten\Watcom\cmdline.exe
|
Die Frage ist, warum? - Ich hab gerade keinen Schimmer, woran das liegen könnte.
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. |