No, L"x" is not guaranteed to do the things you think it does.
(It will use 4 byte characters, depending on how gcc is configured or if you use -fwchar-short or so.)
Doesn't Wine's comfigure complain if gcc doesn't understand -fshort-wchar? (It seems it doesn't, but I'm sure it did in the past...)
I am pretty sure it never did.
Actually, since I can't find that option passed to gcc anymore, how does Wine gets its binary compatibility with native apps regarding this issue?
Hmm? The native apps when compiled use the option -fshort-wchar, see : tools/winegcc.c: gcc_argv[i++] = "-fshort-wchar";
I'm asking because I saw a couple L"_text" while grepping for answering Mike...
There ain't:
./dlls/kernel/messages/winerr_enu.mc.rc: L"Success\n\x0000\x0000", is handled by wmc
./dlls/shlwapi/ordinal.c: lstrlenW(L"{D0FCA420-D3F5-11CF-B211-00AA004AE837 }"); ./dlls/shlwapi/ordinal.c: StrCpyW(a6, L"{D0FCA420-D3F5-11CF-B211-00AA004A E837}"); #if 0'ed out.
./include/wincrypt.h (and one other .h file) use L"" protected by MSVC checks.
Ciao, Marcus