string zu char* bei ShellExecute()



  • Hallo,

    ich habe folgendes Problem:

    void main(){
    	string eingabe;
    	cout<<"Dateipfad eingeben:\t";
    	getline(cin, eingabe);
    	cin.sync();
    	cin.clear();
    	ShellExecute(NULL, NULL, eingabe, NULL, NULL, SW_NORMAL);
    }
    

    Anscheinend muss ich den string eingabe vorher in den Typ (const?) char* konvertieren, aber wie mach ich das? Ich habe dazu leider nichts in meinen Recherchen gefunden... 😞

    Wäre echt cool, wenn mir einer von euch helfen könnte...

    Danke,
    Basti



  • eingabe.c_str()
    


  • Vielen Dank,

    ich habe jetzt zwar keinen Compilerfehler mehr, aber irgendwie öffnet er meine Datei nicht mehr. Als ich den Dateipfad zum Testen direkt in die ShellExecute() Anweisung geschrieben habe, hat er das noch gemacht...

    Muss ich irgendwas anderes beachten, z.B. vorher das Laufwerk wechseln und evtl. in das betreffende Verzeichnis wechseln oder vielleicht die Operation "open" einstellen?



  • wie sieht den dein pfad aus? doppelte backslash?



  • Ich habe es soweit rausgekriegt, es lag an den Umlauten....

    alle anderen Pfade haben funktioniert (mit Leerzeichen und unabhängig von Groß- / Kleinschreibung)...

    Wie kann ich denn dafür sagen, dass der Compiler Umlaute mit an die Shell übergibt?

    Wenn ich einen Umlaut einlese, dann gibt er ihn auch wieder aus mit cout, aber wie ich ihn auch mit an die Shell übergebe, weiß ich nicht...


Anmelden zum Antworten