Newsgroup: it.comp.lang.c++
Titolo: problemi con caratteri estesi (lunghetto)

Salve a tutti, avrei dei problemi con i caratteri estesi (praticamente non
mi funziona quasi nulla) su windows xp con mingw (su Dev-C++).
In pratica sembra che molte delle funzioni correlate ai caratteri estesi non
funzionino, e che alcune nemmano esistano.
Ho provato ad aggiornare mingw, ma mi funzionava peggio di prima e sono
tornato indietro (g++ (GCC) 3.2 (mingw special 20020817-1)).
Ad esempio questo funziona:
#include <iostream>
using namespace std;
int main() {
    wchar_t *stringa = L"Testo nella stringa"; //stringa "wide"
    wprintf ( stringa ); //stampo la stringa wchar_t
    cin.get();   //attendo la pressione di invio
    return 0;
}
Ma questo da' errore:
#include <string>
#include <iostream>
#include <cwchar>
using namespace std;
int main() {
    wstring s = L"stringa di testo";   //errore qua
    return 0;
}
L'errore è il seguente:
[Linker error] undefined reference to `std::basic_string<wchar_t,
std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string(wchar_t
const*, std::allocator<wchar_t> const&)'
[Linker error] undefined reference to `std::basic_string<wchar_t,
std::char_traits<wchar_t>, std::allocator<wchar_t> >::~basic_string()'
Ed anche questo da' errore:
#include <string>
#include <iostream>
#include <cwchar>
using namespace std;
int main() {
    //sembra che wcout e wcin non esistano
    wcout << L"testo" << endl;
    wcin.get();
    return 0;
}
7 C:\momcode\main.cpp
`wcout' undeclared (first use this function)
8 C:\momcode\main.cpp
`wcin' undeclared (first use this function)
Sapete da cosa puo' essere causato? e soprattutto come risolverlo?
Non credo sia questione di codice scritto male perche' si tratta di esempi
semplicissimi visti da piu' parti ( ne ho provati anche diversi altri
ottenendo errori simili), penso piuttosto si tratti di un problema del
compilatore, nel qual caso, sapreste consigliarmi un compilatore aggiornato
sugli standard?
E visto che mi servirebbe avere il codice multipiattaforma, (cioe, almeno
win linux e mac) sapreste consigliarmi che documentazione leggere e che
libri prendere?
ringrazio anticipatamente,
Sinetris

Ho provato tutti e tre i tuoi codici con il compilatore c++ di visual studio
.NET 1.0 e effettuano delle meravigliose compilazioni senza warnings.
Successivamente ho provato tutti e tre i tuoi codici sotto mandrake linux
9.1 con gcc ( g++ ) 3.2.2 e effettuano delle meravigliose compilazioni senza
warnings.
controlla bene i settaggi del compilatore, tipo dove va a prendersi le
librerie.
ciao,
Nids
ps: IMHO potresti provare a cambiare compilatore. Prova ad andare a casa di
un tuo amico con i codici su un dischetto e vedi se la compilano. Se e'
cosi' e' colpa del compilatore ( o meglio della dua installazione dello
stesso )

librerie.
purtroppo non è un problema di "settaggi" del compilatore...
std::wstring in mingw... non va.
sbirish.

 ha scritto nel messaggio
news:pho1iv8n6ge60dmm2...@4ax.com...

ma se sono della stl non basta andare a sostituire i file che la contengono
???

???
la stl non esiste,dallo standard in poi si chiama libreria standard.
A prescindere che di implementazioni ne esistono più di una,
se segui il link in questo thread trovi riportato il problema di mingw
http://lists.boost.org/MailArchives/boost/msg41422.php
sbirish


prego,
Sinetris
PS: volevo scaricare l'sdk .NET della Micro$oft ma e' piu' di 100 MB di
roba... ma almeno è gratuito... viva Linux ( se non esisteva linux col
cappero che la microzoft rilasciava qualcosa a gratisse ;) )
PPS: grazie a tutti voi per le risposte

 ha scritto nel messaggio
news:oqv2ivs9rpbimo6n6...@4ax.com...

bhe ma scusa all'ora di queste librerie non ci stanno i sorgenti ??? che
problemi hanno a prendere l'implementazione di linux e portarla in mingw ???
cioe' non riesco a capire ...
e poi scusami ... ma non era un template ??? che ci sta a fare nella libsdc
???

...

Non e' cosi' semplice. La libreria standard (e non STL) non vive nel
limbo, ma ha bisogno di un supporto sottostante. Qui dovresti poter
vedere qual'e' il problema.
http://sourceforge.net/tracker/index.php?func=detail&aid=664369&group_id=2435&atid=102435
Ciao,
Nicola

 ???
Perche' non dovrebbe?
Ciao,
Nicola