Pfad speichern und ausführen
-
Hi,
ich habe eine Konsolenanwendung geschrieben, in die man einen Pfad eingiebt und die ihn per ShellExecute ausführen soll. Die Eingabe funktioniert gut und wird auch richtig in der char-variable gespeichert. Nur leider funktioniert die Konvertierung nach LPCWSTR per cast nicht, weil dabei ein völlig falscher Wert herauskommt. Somit kann auch der Pfad nicht ausgeführt werden.hier mal ein Ausschnitt des Programms:
#include<iostream> #include<windows.h> #include<conio.h> using namespace std; int main() { cout<<"geben Sie den Pfad ein\n"; char a[2000]; cin>>a; cout<<a;//richtige ausgabe--> speichern in char-variable erfolgreich LPCWSTR b; b=reinterpret_cast<LPCWSTR>(a);//konvertierung für ShellExecute cout<<b;// falsche ausgabe--> konvertierung schlug fehl! ShellExecute(0, TEXT("open"), b, NULL, NULL, SW_SHOWNORMAL);/* kann ja nicht gehen da die konvertierung nicht klappte*/ getch(); }Das Programm kompilert dank des reinterpret_casts einwandfrei, nur die konvertierung schlägt fehl und die datei des pfades kann nicht ausgeführt werden.
Es muss aber in LPCWSTR konvertiert werden, da die Fuinktion ShellExecute als Eingabeparameter nuneinmal LPCWSTR verlangt.kann man das irgendwie so konvertieren dass es trotzdem funktioniert?
Danke schonmal für die Hilfe,
Andreas.Das Programm kompilert einwandfrei
-
oh mein gott! lern programmieren. was du da machst ist doch völliger unsinn!!!!
-
man kann ein wchar_t nicht einfach in ein char und umgekehrt konvertieren.
nimm ShellExecuteA oder eine schleife zum kopieren!