Pfad zur Exe
-
Danke,
aber ich habe eine einfachere Lösung gefunden.
GetCurrentDirectory(250,pfad_zur_exe);
-
Falsch! Das Current working directory ist nicht unbedingt das Verzeichnis in dem die EXE liegt. Es kann separat festgelegt werden.
-
char *guggstdu; guggstdu = strrchr(pfad_zur_exe, '\\'); if(guggstdu){ *guggstdu = 0; }
-
*guggstdu schrieb:
char *guggstdu; guggstdu = strrchr(pfad_zur_exe, '\\'); if(guggstdu){ *guggstdu = 0; }Danke "guggstdu" und "Martin Richter" !
Ich habe es noch ein wenig abgeändert und jetzt funzt es:
TCHAR pfad_zur_exe[258]; GetModuleFileName(NULL,pfad_zur_exe,250); wchar_t* pointer=wcsrchr(pfad_zur_exe, '\\'); *pointer=0x0000;
-
*pointer=0x0000;
Wäre nicht
*pointer=(TCHAR) 0;sicherer?
-
ROFL
Sorry
Ob man 0 als 0 oder 0x0000 schreibt, und ob man es nachträglich noch auf TCHAR oder was auch immer castet ist in dem Fall ganz egal.
Bei der Zuweisung wird es doch sowieso in den passenden Typ verwandelt.
Du kannst auch genausogut "*pointer = false;" schreiben, was zwar komplett dämlich wäre aber im Endeffekt genau dasselbe macht.
-
hustbaer schrieb:
ROFL
Sorry
Ob man 0 als 0 oder 0x0000 schreibt, und ob man es nachträglich noch auf TCHAR oder was auch immer castet ist in dem Fall ganz egal.
Bei der Zuweisung wird es doch sowieso in den passenden Typ verwandelt.
Du kannst auch genausogut "*pointer = false;" schreiben, was zwar komplett dämlich wäre aber im Endeffekt genau dasselbe macht."Your applications should always cast zero to TCHAR when using null-terminated strings"
http://msdn.microsoft.com/en-us/library/ms776431(VS.85).aspx
-
OK. Trifft auf den Fall aber nicht zu. Sorry, ist so.
Du schreibst ja wohl hoffentlich auch nichtsize_t s = (size_t) 0; char c = (char) 0; long l = (long) 0;oder?
Die Sache sieht anders aus wenn der Typ des Literals wichtig ist, also z.B. hier:
CString str; str += TCHAR(0);Hier macht der Cast Sinn.
(EDIT: abgesehen davon dass man einen CString nicht selbst null-terminieren muss und sogesehen das alles keinen Sinn macht, aber denk dir einfach eine 32 statt der 0 wenn dich das stört /EDIT)Ich hoffe du erkennst den Unterschied.
-
str += TEXT('\0');
-
+= schrieb:
str += TEXT('\0');Genau so mache ich es auch.
Martin
-
Benutzt ihr nicht _T() statt TEXT()? Ich finde TEXT nimmt so viel sinnlosen Platz weg.