[QUOTE]Ovvio, stai tentando di scrivere su un'area di memoria sconosciuta (txt è un puntatore non inizializzato!).

questo era un test per capire i funzionamenti delle stringhe unicode, e txt è una variabile puntatore definita in WM_CREATE, ma non credo sia questo perchè provandola a definire anche global stesso risultato;

si string.h è incluso come base dall'ide

ho provato con:

codice:
wchar_t *txt=NULL;

wchar_t *txt;=new wchar_t*();

wsprintf(txt,L"%s",L"Managemente Unicode");
che lo inizializzi o meno presenta sempre lo stesso problema:

codice:
Management.exe caused an Access Violation at location 776d1375 in module USER32.dll Writing to location 00000001.

Registers:
eax=00000012 ebx=0000000a ecx=004192a0 edx=0000004d esi=00000001 edi=00000000
eip=776d1375 esp=0022f48c ebp=0022f4d8 iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010206

Call stack:
776D1375  USER32.dll:776D1375  DialogBoxParamW
776A61D1  USER32.dll:776A61D1  wsprintfW
00402530  Management.exe:00402530
776C1A10  USER32.dll:776C1A10  GetMessageW


Inoltre, a parte il fatto che qui tutti quei cast non servivano, se stai lavorando solo in Unicode non devi usare LPTSTR e LPCTSTR, ma LPWSTR e LPCWSTR.
in primo ti ringrazio per i precedenti approfondimenti!
l'uso dei cast era dato dal fatto che anche se avevo creato un progetto test Unicode se non utilizzavo i cast non erano interpretate come stringhe unicode, questo perà lavorando in codeblock 8.02 mingw 3.4.5; in Dev non ho necessità di castare.

toglimi questo dubbio:

LPTSTR in win 32 SDK è definito così ... "Pointer to a null-terminated Windows or Unicode character string."
visto questo pensavo andasse bene !?!


Attualmente ho creato nuovo progetto c++ Unicode e conversione file Ansi in dev-c++ 4.9.9.2 mingw 3.4.2 in Vista

usando vocali accentate ... se non le uso non ho problemi

codice:
wchar_t **Imenu=new wchar_t *[31]; 

...
Imenu[2]=L"Città";


C:\Dev-Cpp\Progetti\ManagementXpVista\Makefile.win [Build Error] n\make.exe: *** [obj/struct.o] Error 1 

struct.cpp:33:47: converting to execution character set: Invalid argument
non è un carattere "strano" comunque supportato da unicode, perchè ciò che c'è che non va?