The wchar_t type has different standard sizes in Unix (4 bytes) and Windows (2 bytes). You need a recent gcc version (2.9.7 or later) that supports the -fshort-wchar option to set the size of wchar_t to the one expected by Windows applications.
If you are using Unicode and you want to be able to use
standard library calls (e.g. wcslen
,
wsprintf
), then you must use
the msvcrt runtime library instead of glibc. The functions in
glibc will not work correctly with 16 bit strings.