Comment déclarer wchar_t et l'ensemble de sa chaîne de valeur plus tard?

Je suis en train d'élaborer pour Windows, je n'ai pas trouvé d'informations adéquates sur la façon de déclarer correctement et, plus tard, sur le plateau d'une chaîne unicode. Jusqu'à présent,

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

Ce que je assumer ci-dessus n'est [1024] est la répartition de la longueur de la chaîne de la façon dont beaucoup de personnages que j'ai besoin d'avoir le max dans cette chaîne. L"" permet de s'assurer de la chaîne entre guillemets est unicode (Un alt que j'ai trouvé est _T()). Maintenant, plus tard dans mon programme quand je suis en train de mettre cette chaîne à une autre valeur,

myString = L"Another text";

J'obtiens des erreurs de compilation, ce que je fais mal?

Aussi si quelqu'un a une solution facile et en profondeur unicode application de la ressource, j'aimerais avoir quelques liens, signets d'un site web qui est dédié à ça, mais me semble que c'est maintenant disparu.

MODIFIER

- Je fournir à l'ensemble du code, j'ai l'intention de l'utiliser comme une fonction de DLL mais rien jusqu'à présent est retourné.

#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;
}

OriginalL'auteur user780756 | 2013-09-28