Originariamente inviato da stefanoB
in vista wcscopy non funzica ???!!!! :master:

1)
creato un nuovo progetto GUI ed impostato come UNICODE, ma c'è qualcosa che non va:

codice:
wchar_t *txt;
wcscpy(txt,L"prova unicode");
da prima in compilazione error: expected constructor, destructor, o type conversion before '(' token
A parte che c'è un errore logico (vedi dopo), hai incluso string.h?

2)
creato un progetto console compila ma poi in esecuzione si pianta (errore segmentation)
Ovvio, stai tentando di scrivere su un'area di memoria sconosciuta (txt è un puntatore non inizializzato!).
[code]
in altro progetto Gui (era console trasformato in GUI) compila ma da questo errore:
anche con:
codice:
wsprintf((LPTSTR)txt,"%s",(LPCTSTR)"prova unicode 2");
Stesso errore, e in più ti sei dimenticato tutte le L:
codice:
wsprintf(txt,L"%s",L"prova unicode 2");
.
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. Per capire quando usarle, è fondamentale capirne la "grammatica" e il significato:
codice:
LP[C][T|W]STR
LP = puntatore (teoricamente basterebbe P, L è un relitto dei tempi dei 16 bit)
C = se c'è significa che è costante
W = se c'è significa che è una stringa Unicode (basata su wchar_t)
T = se c'è significa che è una stringa TCHAR (ANSI o Unicode a seconda di come è impostata la macro _UNICODE)
se non c'è ne W né T la stringa è ANSI
STR = stringa

Quindi:
LPSTR		char *
LPCSTR		const char *
LPTSTR		TCHAR *
LPCTSTR		const TCHAR *
LPWSTR		wchar_t *
LPCWSTR		const wchar_t *
3) wstring

codice:
std::wstring tmp(L"stringa prova");
se tento di appendere o concaternare: expected constructor, destructor, o type conversion before '('
Mostra il codice con cui cerchi di concatenare.