Pfad ermitteln??
-
Hi leute,

ich weiß ds die Frage bestimmt schon öfter gestellt wurde aber ich hab grad nicht lange Ziet hier im Netz. Hab keine Zeit alles durchzusuchen.
Also ich will ein Programm schreiben das mir in einer MessageBox den Pfad des Programmes anzeigt. Es soll also seinen eigenen Pfad ermitteln und ausgeben.
Gibts dafür ne Function?
Am besten wäre ein kleines Beispiel damit ich gleich verstehe wie mans macht.
Wär echt nett wenn mir da jemand helfen könnte.
Danke

-
-
Hmmm,
wenigstens ist er ehrlich das er keine Zeit hat. Da Du keine Zeit hast tue ich dir den gefallen und poste es direkt:
#include <direct.h> #define sztitle "Dein Programm: Pfaderkennung" char* path = new char [1024]; strcpy ((char*)path, (char*)""); path = _getdcwd (_getdrive (), (char*)path, 400); MessageBox (NULL, (char*)path, (char*)sztitle, MB_OK | MB_ICONINFORMATION);Ich habe es aus meiner Engine heruaskopiert, allerdings sollte es eigentlich funktionieren. _getdcwd liefert der den pfad, erwartet allerdings das Laufwerk, welches du mit _getdrive bekommst. Achtung: es gibt noch eine Funktion _getdrives, die hier zu fehlern führen kann.
Gruß fluxy
-
What the fuck

Der Code ist ja schlecht.

-
wieso soll der schlecht sein? Er erfüllt seinen sinn.
-
getdcwd liefert nur das Current Working Directory. Das ist manchmal nicht der richtige Pfad den man haben will.
Du benutzt einige Compilerspezifische Funktionen wo man genauso Winapi-Funktionen einsetzen könnte.
Du hast unnötige Casts.
usw. :p
-
und du legst den Speicher auf dem Heap an, wo er auf dem Stack besser plaziert wäre.
-
Danke @fluxy.
Ich kann den code erst morgen testen. Hab grad NULL zugang zu meinem Rechner.
@Worm wenn du verbesserungsvorschläge hast dann poste sie bitte.
Deine Aussagen bringen mich irgendwie nicht weiter.
Bin noch voll der newbie!
-
hab dir doch den Link gegeben
-
Hab noch vergessen euch zu sagen das ich Visual C++ 6.0 benutze.
Nur so als Info.
-
Hab mir den Link angeguckt.

Danke.
Ich glaub das bringt mich weiter.
Ich werd alles mal ausprobieren. Auch fluxys varriante.Danke euch beiden.

-
#include <windows.h> #include <shlwapi.h> #pragma comment(lib, "shlwapi.lib") int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { char Pfad[MAX_PATH] = {NULL}; GetModuleFileName(hInstance, Pfad, MAX_PATH); PathRemoveFileSpec(Pfad); MessageBox(NULL, Pfad, "Pfad zu diesem Programm:", MB_OK|MB_ICONINFORMATION); return 0; }