On Tuesday, 3 July 2018 at 17:54:08 UTC, Seb wrote:
BTW in case someone has a bit of time to look at the MinGW
headers. They are built as part of the `build-mingw-libs`
branch at the installer repo:
https://github.com/dlang/installer/blob/build-mingw-libs/windows/build_mingw.bat
This is automated via AppVeyor:
https://github.com/dlang/installer/blob/build-mingw-libs/appveyor.yml
And it's added to the zip here:
https://github.com/dlang/installer/blob/master/create_dmd_release/build_all.d#L505
I think the installer detects whether Visual Studio is
installed or nor, but I'm not sure on this (I don't use
Windows).
AFAICT, the issue is that MinGW is used, as opposed to MinGW-w64
(a confusingly separate project unfortunately AFAIK). There's no
SetWindowLongPtr for Win32, it's #defined as SetWindowLong. The
64-bit user32.def of MinGW-w64 contains it [1], while it's
missing in the MinGW .def file [3] and the 32-bit MinGW-w64 one
[2].
[1]
https://sourceforge.net/p/mingw-w64/code/HEAD/tree/trunk/mingw-w64-crt/lib64/user32.def
[2]
https://sourceforge.net/p/mingw-w64/code/HEAD/tree/trunk/mingw-w64-crt/lib32/user32.def
[3]
https://sourceforge.net/p/mingw/mingw-org-wsl/ci/5.0-active/tree/w32api/lib/user32.def