Um einen ganzzahligen Wert an SetWindowTextW() zu übergeben (ich verwende einen Unicode-Build in C++ mit Visual Studio 2010), würde diese Funktion ausreichen, um einen LPCWSTR zurückzugeben? Ich bin mir ziemlich sicher, dass es etwas gibt, was ich hier nicht verstehe, weil es einen merkwürdigen Wert zurückgibt. Ich weiß, dass ein LPCWSTR eine leere lange Zeichenkette mit langem Zeiger ist, aber ich denke immer noch, dass mir etwas fehlt !?LPCWSTR von einer Funktion zurückgeben?
const LPCWSTR int2LPCWSTR (int integer)
{
wstringstream wss;
wss << integer;
const wstring& wstr = wss.str();
const LPCWSTR p = wstr.c_str();
return p;
}
Also wie könnte ich es ändern, um stattdessen ein Wstring zurückzugeben? Kann dieser Wert dann an SetWindowTextW() übergeben werden oder muss ich die .c_str() davon nehmen? – rem45acp
können Sie die Funktion verwenden, die ich eingefügt habe. und Sie sind richtig - dann nehmen Sie einfach die. C_str() von diesem Rückgabewert. Da std :: string/std :: wstring im Allgemeinen die gesamte Speicherverwaltung von Zeichenfolgen abstrahiert, wird sie standardmäßig in Ihrem Code verwendet und wird nur behandelt.c_str() - oder c-style-Strings im Umgang mit externen Dingen, die nicht mit std :: string umgehen können. – tenfour
Vielen Dank für Ihre Hilfe! – rem45acp