Wo bin ich ?

Hallo,

Mit MS CPP6 unter XP möchte ich den Pfad meiner exe erfahren ( um dort weitere Dateien zu suchen/finden/öffnen/bearbeiten ). Würde mich über einen 3-Zeiler freuen, ein kleines Beispiel, oder auch nur die Zauberworte, nach denen ich suchen muss.

Einen angenehmen Restsonntag wünscht

Uwe P.

Hallo Hick,

unter XP möchte ich den Pfad meiner exe erfahren

Unter einer Win32/WinMain-Umgebung:

{
 ...
 char exepfad[128]; // ad hoc!
 GetModuleFileName(NULL, exepfad, 128);
 1[strrchr(exepfad, '\\')] = '\0';
 ...
 // exepfad jetzt: "c:\\programme\\super\\" 
}

In einer Win32/Konsole-Umgebung:

 int main(int argc, char \*argv[])
{
 char exepfad[128];

 1[strrchr(strcpy(exepfad, 0[argv]), '\\')] = '\0';
 printf("pfad: %s \n", exepfad);
 ...
}

… wenn ich mich richtig entsinne …
(kann auch sein, dass man die Dereferenzierungs-Indices
„anders rum“ schreiben sollte - aber Du wolltest ja
nur einen „Hinweis“ :wink:

Grüße

CMБ

Hallo Uwe !

Wie bereits weiter unten gesagt kannst du den Übergabeparameter argv[0] verwenden, in dem der volle Pfad des aufgerufenen Programms steht (der ist uebrigens global auch unter __argv[] erreichbar).
Schöner ist natürlich die Verwendung der Funktion getcwd() mit der du das aktuelle working-directory ermitteln kannst, dadurch kann man das Programm auch mit verschiedenen working-directories aufrufen.
Kommt halt darauf an, was genau man erreichen will.

mfg
Christof

Mit MS CPP6 unter XP möchte ich den Pfad meiner exe erfahren (
um dort weitere Dateien zu suchen/finden/öffnen/bearbeiten ).