Verzeichniskram



  • Hi Leute,
    versuche grad eine Routine zu schreiben, die mir
    den pfad der exe datei ausgibt, an dem sich die exe datei befindet.
    also exedatei in f:\test\test.exe
    gestartet von c:\
    soll mir den pfad f:\test\test.exe
    liefern....

    habe natürlich erstmal in die FAQs geguckt, auch was entsprechendes gefunden,
    bekomme aber die sachen nicht ans laufen die ich dort gefunden habe:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-39131.html
    folgender code

    char buf[256];
    GetModuleFileName(NULL, buf, 255);
    CString strPfad;
    strPfad.Format("%s", buf);
    int nTmp = strPfad.ReverseFind('\\');
    strPfad.Delete(nTmp,strPfad.GetLength()-nTmp);
    

    oder

    CString strPath = CString( GetCommandLine()).Mid( 1, CString(GetCommandLine()).ReverseFind('\\')-1);
    

    und zwar habe ich immer probleme mit dem CString, der kennt das einfach nicht...

    Benutze Microsoft Visual c++ 6.0

    Danke



  • Wenn du Glück hast stehts in argv[0], ansonsten GetCurrentDirectory (insofern du das noch nicht mit SetCurrentDirectory verändert hast)



  • hmm verstehe nicht ganz was du meinst, jedenfalls habe ich noch nichts verändert mit SetCurrentDirectory,

    das er das CString nicht erkennt stört mich am meisten, denn ich habe ja die string.h includiert, oder brauch ich da was anderes für ??



  • Hallo

    CString ist eine Klasse aus der MFC, und hat nichts mit der STL zu tun. Mit

    #include <string>
    

    kannst du std::string benutzen.

    bis bald
    akari



  • Hi, habe es also auch mal mit #include "string"
    probiert, geht leider auch nicht, hier der auszug aus dem copilierfenster

    --------------------Konfiguration: Get_Dir - Win32 Debug--------------------
    Kompilierung läuft...
    Main.cpp
    error C2065: 'CString' : nichtdeklarierter Bezeichner
    error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'strPfad'
    error C2065: 'strPfad' : nichtdeklarierter Bezeichner
    error C2228: Der linke Teil von '.Format' muss eine Klasse/Struktur/Union sein
    error C2228: Der linke Teil von '.ReverseFind' muss eine Klasse/Struktur/Union sein
    error C2228: Der linke Teil von '.Delete' muss eine Klasse/Struktur/Union sein
    error C2228: Der linke Teil von '.GetLength' muss eine Klasse/Struktur/Union sein
    Fehler beim Ausführen von cl.exe.
    
    Get_Dir.exe - 7 Fehler, 0 Warnung(en)
    

    hoffentlich könnt ihr da was mit anfangen ...?!?



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum MFC (Visual C++) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hallo

    wie bereits gesagt, CString gehört zur MFC ist ist nicht Teil des C++ Standards.
    Um den Code so benutzen zu könenn brauchst du einen Microsoft-Compiler mitsamt MFC-Einbindung.

    bis bald
    akari



  • Dr. Prof schrieb:

    Wenn du Glück hast stehts in argv[0], ansonsten GetCurrentDirectory (insofern du das noch nicht mit SetCurrentDirectory verändert hast)

    Wenn er es von C:\ startet ist GetCurrentDirectory acuh C:\, egal wo die exe liegt. Das ist also genau das, was er NICHT will...



  • CString declared in Afx.h:
    Die Klasse CString gehört zu den so­ge­nannten Simple Value Typen innerhalb der MFC-Familie. Weitere Simple Value Typen sind CPoint, CRect, CSize, CTime und CTimeSpan.


Anmelden zum Antworten