eigener name
-
Wie bekomme ich den momentanen Dateinamen meiner exe? Also sowas wie argv[0] aber ohne den Pfad. Wenn es mit ansi c nicht geht bitte ins winapi verschieben.
-
Du nimmst einen Zeiger auf das Zeichen nach dem letzten Pfadtrenner?
-
µngbd schrieb:
Du nimmst einen Zeiger auf das Zeichen nach dem letzten Pfadtrenner?
Von? Falls du argv[0] meinst, das hat ja nicht immer ein '\'.
-
Du nimmst einen Zeiger auf das Zeichen nach dem letzten Pfadtrenner, wenn einer da ist?

Aber bevor du jetzt betteln musst, nach WinAPI verschoben zu werden: GetCommandLine() hat afaik immer den ganzen Pfad dabei.
-
DerPeter schrieb:
Wie bekomme ich den momentanen Dateinamen meiner exe? Also sowas wie argv[0] aber ohne den Pfad. Wenn es mit ansi c nicht geht bitte ins winapi verschieben.
mit ansi-c geht fast alles, aber unter winapi gibts z.b. '_splitpath'
http://msdn.microsoft.com/en-us/library/e737s6tf(VS.80).aspx

-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
mit GetModuleFileName bekommst du den gesammten pfad inklusieve des Dateinames
-
argv[0] ist nicht zuverlässig. Das kann durch CreateProcess gefaket werden. Nur GetModuleFileName liefert den korrekten Wert.
-
und mit PathFindFileName könntest du dann an den Namen der Exe kommen.
TCHAR szFileName[MAX_PATH]; GetModuleFileName(NULL, szFileName, sizeof(szFileName) / sizeof(TCHAR)); PathFindFileName(szFileName); // szFileName = name.exe
-
Martin Richter schrieb:
argv[0] ist nicht zuverlässig. Das kann durch CreateProcess gefaket werden. Nur GetModuleFileName liefert den korrekten Wert.
hast du ein artikel oder etwas in der art? hab das noch nie gehört
-
argv[0] kann einfach durch CreateProcess frei belegt werden.
Wenn ein Benutzer alle Programmargumente frei bestimmen kann bei Createprocess, inkl. eben argv[0], würde ich mich als Programm nicht drauf verlassen, dass das richtige drin steht...

-
klingt logisch!
thx!