[Issue 18659] New: All modern window API calls are disabled
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Mar 24 20:53:39 UTC 2018
https://issues.dlang.org/show_bug.cgi?id=18659
Issue ID: 18659
Summary: All modern window API calls are disabled
Product: D
Version: D2
Hardware: x86
OS: Windows
Status: NEW
Severity: normal
Priority: P1
Component: druntime
Assignee: nobody at puremagic.com
Reporter: musicaljelly at gmail.com
I recently found that I could use CancelIo(), but not CancelIoEx(). I looked at
winbase.d, and found that CancelIoEx() is wrapped with 'static if (_WIN32_WINNT
> 0x600) (I'm on Windows 10, so this shouldn't have been an issue).
I looked at w32api.d where this enum is defined, and found a bunch of version
statements that set __WIN32_WINNT based on your windows version. I put a
pragma(msg) into Windows10 block and compiled, and nothing was printed. I then
moved it into the fallback else block, and it printed. This indicates to me
that this version if-else is not working as intended.
This version if-else is using version labels (like Windows10, Windows8_1, etc)
that aren't listed in the docs. Are they real version labels that are actually
supported? They don't seem to be working on my machine.
Fair warning, I'm running a relatively old version of D currently (2.072.1).
But unless these version statements have been added recently (and the docs
don't seem to indicate this), then this issue still exists.
Let me know if there's anything I can test or if any more details would be
helpful.
--
More information about the Digitalmars-d-bugs
mailing list