ShellExecute
-
Hallo zusammen,
Kann mir jemand sagen, wie die folgende Zeile richtig heißt?
ShellExecute(NULL, "open", "Shutdown.exe", "-" << _this->m_host << " -reboot", NULL, SW_SHOW);
Danke
Michael
-
Hallo
ShellExecute(NULL, "open", "Shutdown.exe", string("-" + _this->m_host + " -reboot").c_str(), NULL, SW_SHOW);
bis bald
akari
-
Hi,
Danke erstmal, ich erhalte jedoch noch 3 Fehler:
error C2110: '+': Zwei Zeiger können nicht addiert werden
error C2228: Der linke Teil von '.c_str' muss eine Klasse/Struktur/Union sein Typ ist ''unknown-type''
error C3861: 'string': Bezeichner wurde auch mit einer argumentbezogenen Suche nicht gefundenKennst Du eine Lösung?
Vielen Dank
Michael
-
Hallo
benutzt du denn std::string? Ist nämlich empfehlenswert.
http://www.cppreference.com/cppstring/Meine Lösung basiert eigentlich darauf, das _this->m_host ein String ist.
bis bald
akari
-
Ich glaube schon, das das ein String ist ("PC-2")
Oder irre ich mich da?
-
Hallo
du must doch wissen, was für ein Datentyp hinter _this->m_host steht.
Was nun genau für ein Wert zugewiesen ist, ist nicht wichtig.bis bald
akari
-
Morgen,
Ich habe leider sehr wenig Ahnung von c++, aber durch die folgende Reihe nehme ich an, das das TCHAR ist.
TCHAR m_host[256];
Ich habe schonmal nach "TCHAR zu String" gegoogelt, aber nichts gefunden.
Kannst Du da vielleicht helfen?
Michael
-
Ich nochmal, inzwischen glaube ich eher, das mein Compiler ein allgemeines Problem mit String hat, denn ich habe mal folgende Zeile eingegeben:
ShellExecute(NULL, "open", "Shutdown.exe", string("-" + " -reboot").c_str(), NULL, SW_SHOW);
und es entstehen die selben Fehler.
Gruß
Michael
-
Hallo
Weil std::string erstmal deklariert werden muß
#include <string> // für std::string ... ShellExecute(NULL, "open", "Shutdown.exe", std::string("-" + " -reboot").c_str(), NULL, SW_SHOW);
Wenn das das Problem gewesen sein sollte, sollte es dan auch mit _this->m_host funktionieren
bis bald
akari
-
Hi,
Genau das habe ich schon gemacht, leider ohne Erfolg.
Kann das vielleicht an VS liegen?Gruß
Michael
-
std::string("-" + " -reboot").c_str()
Wie soll das auch funktionieren? Man kann keine zwei Zeiger addieren und
"-" und " -reboot" sind in diesem Kontext nunmal Zeiger.Was geht:
std::string("-").append(" -reboot").c_str();
oder auch:
(std::string("-") + " -reboot").c_str();