questo era un test per capire i funzionamenti delle stringhe unicode, e txt è una variabile puntatore definita in WM_CREATE,Ovvio, stai tentando di scrivere su un'area di memoria sconosciuta (txt è un puntatore non inizializzato!).
ma non credo sia questo perchè provandola a definire anche global stesso risultato;
si string.h è incluso come base dall'ide
ho provato con:
che lo inizializzi o meno presenta sempre lo stesso problema:codice:wchar_t *txt=NULL; wchar_t *txt;=new wchar_t*(); wsprintf(txt,L"%s",L"Managemente Unicode");
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
in primo ti ringrazio per i precedenti approfondimenti!
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.
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 converto i 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?

Rispondi quotando