Ciao a Tutti.
Ho un problema che mi attanaglia da un pò di tempo. Ho un programma in C appena esportato da Visual Studio 6.0 a Visual studio 2008. questo software gestisce delle dialog uiilizzando le API di window (niente MFC) con il solito invio di messaggi. Per ragioni commerciali si è deciso di convertire tutti i testi presenti nelle varie text box da italiano/inglese (ASCII) a caratteri per esempio cinesi (UNICODE). Data la dimensione del progetto, si è deciso di convertire in unicode solo quello che serviva.
In breve non ho definito nelle definizioni preprocessore la direttiva UNICODE e _UNICODE (altrimenti dovevo passare l'intero codice da char a WCHAR), ma sono andato a richiamare SendMessageW() per l'invio di messaggi in WCHAR (con le relative conversioni, cast etc), al posto di WCHAR che richiede la #define UNICODE ho incluso <wchar.h> che mi permette di utilizzare un analogo tipo wchar_t (è un char a 16 bit). Eventuali file ini sono in unicode e i testi vengono letti con una GetPrivateProfileStringW. I file .RC sono stati salvati in unicode. Il font utilizzato è Arial Unicode MS con charset Default_Charset (l'unico font sul mio pc che conteneva tutti i caratteri). Il sistema Windows XP pro sp3 è stato impostato tutto con carattere Arial Unicode MS.
************************************PROBLEMA****** *********************************************
Il programma compila e visualizza le dialog. Nella titlebar (la caption) non compaiono i caratteri cinesi(ma neanche arabi, turchi, giapponesi)bensi solo dei "??????????????" oppure caratteri ASCII(per intenderci quelli che utilizziamo in italia).
nel resto della dialog tutto funziona correttamente.
Che devo fare? io credo che sia una impostazione del sistema operativo.
Ho fatto una prova a proposito. Ho installato windows XP sp3 su un'altra macchina con il pacchetto multilanguage cinese tradizionale e semplificato ma in entrambi i casi nn sono riuscito a visualizzare i caratteri correttamente.
Ciao Grazie Mille