LPCWSTR in string?
-
Hallo zusammen,
ich habe eine Methode, die einen LPCWSTR Parameter erwartet.
In dieser Funktion möchte ich den Wert (bsp. "Test"), den ich übergeben habe
in eine Datei schreiben.void Write(LPCWSTR myTxt) { ofstream fout( "c:\\text.txt" ); fout << myTxt; }Wenn ich das Ganze ausführe, stehen in der Datei eine Zahl. Ich nehme an,
dass diese Zahl eine Adresse ist.Wie kann ich nun "myTxt" in Zeichen umwandeln?
-
Bei LPCWSTR wird es sich wohl um einen "Long Pointer to Const Wide String" handeln? Schau dir doch erstmal die Definition an, damit du weißt wie du ihn benutzen kannst.
Du hast nämlich den Pointer raus geschrieben, deshalb steht ne Zahl in der Datei (die Adresse auf die er zeigt).
Versuchs mal so:
void Write(LPCWSTR myTxt) { wofstream fout( "c:\\text.txt" ); // Wide-Stream benutzen! fout << *myTxt; // Dereferenzieren!!! }Besser:
void Write(const std::wstring &myTxt) { wofstream fout( "c:\\text.txt" ); fout << myTxt; } Write( myLPCWSTR );
-
Den Aufruf kann ich leider nicht modifizieren, da die Methode exportiert wird.
Mittels *pszCmdLine bekomme ich natürlich den ersten Wert zu dieser Adresse
aber wie erhalte ich den ganzen string?
-
Ok ich habs. Den Pointer einfach weg

Es lag wohl an wofstream.
Danke!
-
Noch eine kleine Frage:
wie kann ich jetzt LPCWSTR zu char* oder string konvertieren?
-
Aus dem MSDN-Forum:
std::string ws2s(const std::wstring& s) { int slength = (int)s.length() + 1; int len = WideCharToMultiByte(CP_ACP, 0, s.c_str(), slength, 0, 0, 0, 0); char* buf = new char[len]; WideCharToMultiByte(CP_ACP, 0, s.c_str(), slength, buf, len, 0, 0); std::string r(buf); // If this throws an exception, you'll leak memory. It will be slightly easier to use a std::vector instead, which does self checking. delete[] buf; return r; }
-
Gibt es da auch noch was zu "LPCSTR"?
-
Bei LPCSTR gibts doch nichts zu konvertieren, oder? Ist doch nur ein const char Pointer, oder?
-
WinExec((const char*)myText,SW_SHOW);leider negativ!
-
Was willst du denn da konvertieren?

http://msdn2.microsoft.com/en-us/library/ms687393.aspxUINT WINAPI WinExec( __in LPCSTR lpCmdLine, __in UINT uCmdShow );Ist doch schon ein LPCSTR...
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Nun "myText" ist vom Typ LPCWSTR und WinExec erwartet LPCSTR.
WinExec(myText,SW_SHOW);Das haut leider rnicht hin.