Question about wide-char string literals

Alex Henrie alexhenrie24 at gmail.com
Fri Nov 13 01:35:49 CST 2020


On Fri, Nov 13, 2020 at 12:20 AM Stefan Dösinger
<stefandoesinger at gmail.com> wrote:
>
> Am 13.11.2020 um 03:45 schrieb Alex Henrie <alexhenrie24 at gmail.com>:
>
> However, if MinGW is not installed, Wine's build system will compile
> that same source code with L-strings as an SO module and it works
> thanks to the -fshort-wchar compiler flag. So what's stopping us from
> using -fshort-wchar and L-strings everywhere?
>
>
> A non-mingw compiled PE module will only call other Wine libraries and only use Wine headers, so -fshort-wchar is an option. A not-yet-split module like msvcrt.dll.so will include system headers and call unix libraries so we can't safely use -fshort-wchar.

Wouldn't that only be a problem if the module tried to call a wcs
function like wcslen, which we can't do right now anyway because wcs
functions expect an array of 4-byte characters and all the wide-char
functions in the Win32 API use 2-byte characters? Most system
functions don't use wchar_t at all and thus can be safely called no
matter how it's defined.

-Alex



More information about the wine-devel mailing list