#236489 mingw32: C++: wide streams missing

#236489#5
Date:
2004-03-06 13:32:32 UTC
From:
To:
Hi,

I just tried to compile one of my projects with mingw32, which failed
because wide stream support is missing. Could you try to enable wchar_t
support in the compiler?

Thanks,
   Simon

#236489#10
Date:
2004-03-06 16:21:04 UTC
From:
To:
Howdy,

'failed' gives me a pretty broad licence to speculate upon, would
you care to be a little more specific as to what failed ...  :-)

How do you suggest I do this?  If you grep the headers, you'll see
wchar_t is in there, and as I type this, I'm cross compiling wx in
unicode mode with apparent success, though I've never tried that
before, and only have wine to test the results on right now.

If its a runtime (rather than compile time) failure that you are
seeing, and you are using a non-NT based billware release, then
googling for unicows.dll might give you the clue you are looking
for.  (but possibly not much relief since its terribly non-free)

 ... some time later ...

Ok, the wx build just finished and its minimal sample 'works'
under wine in so far as it tells me it needs XP/2k/NT etc because
I didn't build it with unicows support.  I did manage to get it
tested on an XP system though and it indeed works just fine there,
too.

The only thing then that stopped me from closing this right now
is that I found a message from Danny Smith dated 11/2003 that
says:

But nothing I have tried has enabled me to reproduce any sort
of problem so far (which also could be because my locale is C)
so you are going to have to throw me a bigger bone before I
can shed any more light on this.

sorry,
Ron

#236489#17
Date:
2006-03-25 20:29:04 UTC
From:
To:
streams like wcout aren't yet implemented in mingw32.

Apparently there are people working on this... I found
http://lists.zerezo.com/mingw-users/msg00753.html

Regards,
Viktor.

#236489#22
Date:
2006-03-26 03:38:07 UTC
From:
To:
Hi,

It's actually a bit deeper than that.  In the absence of glibc, the
libstdc++ library is built using the 'generic' c_locale -- which
does not support named locales other than "C".

Thanks for the pointer, though this thread seems to have stalled
a while back now, I hadn't found it previously.

I've been tossing some hours into this one again myself recently,
given that libintl and libiconv now build, more or less, out of
the box with mingw.

I currently have libstdc++ building using the 'gnu' clocale, having
stubbed out the 'xlocale' api (along with a couple of other things
like nl_langinfo_l) as the last major missing piece.

I still need to do some more tests, and complete the implementation
of those functions (or rather port it to C from some C++ code of
my own), but it is looking fairly promising.

If it all pans out, I plan to add a mingw32-i18n package containing
those things, both as a dependency for the toolchain and for people
to use standalone if they so desire.

 Ron