Updates to the WindowsAPI translation instructions; D2 only?
Stewart Gordon
smjg_1998 at yahoo.com
Thu Aug 1 13:59:22 PDT 2013
I've made some changes following recentish discussion. The changes are:
- Do away with Windows 9x versioning, given that Windows 9x is no longer supported either
by Microsoft or by DMD (implemented).
- a DECLARE_HANDLE template to declare handle types (I think it's fully implemented,
please let me know if I've missed any).
- function macros from the C headers are defined as templates, in order to force inlining
(partly implemented).
I've realised that some of the changes I've made (such as using @property) mean that the
code now doesn't work under D1. What do people think? Can we safely decide that these
bindings are going to support D2 only from this point forward? I still have an old
D1-compatible version of the bindings, which I'll put on the web in due course for anyone
who wants them.
Along these lines, I'm thinking of making a few more changes:
- Just use the D const pointer syntax where we need it, rather than this CPtr template
that was made for D1 compatibility.
- Declare all constants as enums, in order to force inlining.
- Define a mixin template along the lines of __AW in newer versions of MinGW, so that
version (Unicode) {
alias QwertW Qwert;
} else {
alias QwertA Qwert;
}
can become simply
mixin DECLARE_AW!("Qwert");
Moreover, if we're going to do this, should we place these declarations:
- in a block at/near the end of the file, as we tend to do currently?
- immediately below the declaration of which it declares an alias?
- immediately below for structs, and for function signatures below the whole list of them?
What do people think?
I'll be away for a week and a bit starting tomorrow, but will pick up this discussion on
my return.
Stewart.
--
My email address is valid but not my primary mailbox and not checked regularly. Please
keep replies on the 'group where everybody may benefit.
More information about the Digitalmars-d
mailing list