fremde exe öffnen schlägt fehl.
-
Hallo wollte wgnuplot starten um daten zu verarbeiten, aber ich habe schon Probeme die Exe selbs zu öffnen. Unicode ist aktiviert im Project. der code ist folgender:
//just prototyping string pfad = "C:\\\wgnuplot.exe"; int size_int= (int) pfad.length(); char* pfadpoi=new char[size_int+1]; memset(pfadpoi,'\0',size_int+1); strcpy (pfadpoi, pfad.c_str()); ShellExecute(0, "open", pfadpoi, NULL, NULL, SW_SHOWNORMAL);der fehler ist folgender:: error C2664: 'ShellExecuteW': Konvertierung des Parameters 2 von 'const char [5]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.Mir ist klar das der Parameter selbst vom Typ her nicht stimmt. Aber laut Anleitungen und examples machens doch alle so. Daher bin ich ein wenig verwirrt.
Gruß und danke für hilfe
-
-
Der Anwendungsname selbst ist falsch, er enthält drei Backslashes. Zwei sollten reichen.
-
Wenn du für Unicode kompilierst musst du auch Unicode (oder Wide) Strings benutzen, Microsoft hat dafür das Makro _T oder TEXT vorgesehen, IIRC.
Den ganzen Wust kann man also durch
ShellExecute( 0, _T("open"), _T("c:\\wgnuplot.exe", 0, 0, SW_SHOWNORMAL );ersetzen.
-
-
ja erstens ist weil ich den pfad gekürzt habe.
Also er kompiliert öffnet aber das programm noch nicht. Als fehler wird integer 2 zurückgegeben. Also stimmt der Pfad nicht. Ich nutze VS2008 und win7 64bit. Gibt es dort restriktionen bei der pfadangabe. hab zwei flashes weggenommen.. nun ist der Aufruf:ShellExecute( 0, _T("open"), _T("c:\wgnuplot.exe"), 0, 0, SW_SHOWNORMAL );Wenn ich den Pfad direkt im Eplorer eingeben, öffnet die Datei auch!
-
Jetzt ist da aber wieder ein backslash zuwenig!
Du weisst nicht was Du tust!
-
selber fehlercode. ok funzt wenn ich es richtig in C verschiebe. Liegt wohl an den ordnern dazwischen. danke euch
-
Hallo greenghecco, schau dir mal das hier an:
http://pronix.linuxdelta.de/C/standard_C/c_programmierung_4.shtml
Dann müsste einiges klar werden.EDIT: Was mir noch einfällt: Wenn du anstatt der Backslashes einfach normale Slashes nimmst, funktioniert das auch. Die normalen slashes dürfen allerdings nicht verdoppelt werden.
MfG, Jochen
-
schon gut, habe übersehen das be jedem ordner ein doppelslash hinmuss. Geht alles