Pfad ermitteln??



  • 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;
    }
    

Anmelden zum Antworten