GetTempPath() !?



  • Hallo,
    ich habe folgenden Code:

    CString nameTempDir;
    
    TCHAR pathName[MAX_PATH];
    
    // Temp Pfad ermitteln.
    ::GetTempPath(MAX_PATH, pathName);
    
    nameTempDir = pathName;
    
    // In langen Pfadnamen konvertieren. 
    ::GetLongPathName(nameTempDir, pathName, MAX_PATH);
    
    cout << pathName;
    

    Der Temp Pfad wird wunderbar ermittelt. Der Pfad ist jedoch nicht in der von mir erwarteten Form !? Beispielsweise wird folgendes ausgegeben:

    C:\Dokumenten und Einstellungen\user\Lokale Einstellungen\Temp\00421A1C

    Habe ich irgendwo die String Termination '\0' vergessen, oder wodurch entsteht diese 00421A1C?

    Gruß



  • Problem gelöst, Terminierung vergessen.



  • Funktioniert doch noch nicht so recht.

    // pathOutput == "Rückgabeparameter"
    // nameOutput == Name des Ausgabeverzeichnisses
    //
    void getDirName(CString& pathOutput, const string& nameOutput = "output")
    {
    
         string  nameTempDir;
    
         //...
    
         // Danach enthält nameTempDir eine vollständige Pfadangabe "C:\muh\maeh".
         nameTempDir += nameOutput + "\\";
    
         // Irgendwie funktioniert dieser Teil nicht so Recht, es sieht aus als  
         // würde '\0' fehlen!? Kann aber eigentlich nicht sein, wo liegt mein 
         // Fehler?
         //
         pathOutput = nameTempDir.c_str();
    
    }
    

Anmelden zum Antworten