Wie erklären wchar_t und seine string-Wert später auf?

Bin ich für die Entwicklung für Windows, habe ich nicht gefunden ausreichende Informationen über, wie man richtig deklarieren und später am set ein unicode-string. So weit,

wchar_t myString[1024] = L"My Test Unicode String!";

Was ich übernehmen oben tut, ist [1024] ist die zugewiesene Zeichenkette der Länge, wie viele Zeichen brauche ich, um max in diesem string. L"" stellt sicher, dass die Zeichenfolge in Anführungszeichen ist unicode (Ein alt-ich fand, ist _T()). Nun später in meinem Programm, wenn ich versuche zu setzen, dass string in einen anderen Wert von,

myString = L"Another text";

Bekomme ich compiler Fehler, was mache ich falsch?

Wenn jemand auch hat eine einfache und in-Tiefe unicode-app Ressource, ich würde gerne einige links, die verwendet werden, um Lesezeichen eine website, die gewidmet war, aber scheint, dass jetzt Weg ist.

BEARBEITEN

Ich den gesamten code, den ich verwenden möchten, dieses als DLL-Funktion aber bisher nichts zurückgegeben.

#include "dll.h"
#include <windows.h>
#include <string>
#include <cwchar>

export LPCSTR ex_test()
{
wchar_t myUString[1024];
std::wcsncpy(myUString, L"Another text", 1024);

int myUStringLength = lstrlenW(myUString);

MessageBoxW(NULL, (LPCWSTR)myUString, L"Test", MB_OK);

int bufferLength = WideCharToMultiByte(CP_UTF8, 0, myUString, myUStringLength, NULL, 0, NULL, NULL);
if (bufferLength <= 0) { return NULL; } //ERROR in WideCharToMultiByte
return NULL;

char *buffer = new char[bufferLength+1];
bufferLength = WideCharToMultiByte(CP_UTF8, 0, myUString, myUStringLength, buffer, bufferLength, NULL, NULL);
if (bufferLength <= 0) { delete[] buffer; return NULL; } //ERROR in WideCharToMultiByte

buffer[bufferLength] = 0;

return buffer;
}
InformationsquelleAutor user780756 | 2013-09-28
Schreibe einen Kommentar