On 24 November 2012 09:23, Walter Bright <[email protected]> wrote:
> On 11/23/2012 5:06 PM, Vladimir Panteleev wrote: > >> On Friday, 23 November 2012 at 21:21:49 UTC, Walter Bright wrote: >> >>> On 11/23/2012 5:57 AM, Vladimir Panteleev wrote: >>> >>>> There might be some incompatibilities, for example due to how the >>>> HANDLE type is >>>> declared. In C, you can use either 0 or NULL as a parameter to a >>>> function >>>> accepting an integer or pointer. In D, you cannot. IIRC, some types were >>>> declared differently in Druntime's modules and in the win32 bindings. >>>> >>>> If breaking code were not an issue, the best solution would be to make >>>> HANDLE a >>>> unique, opaque type (like a struct wrapping an intptr_t or void*) - >>>> which is >>>> exactly how it should be treated. It would need to support >>>> assignment/creation >>>> from "null" though. >>>> >>> >>> This is why I don't approve of attempts to "fix" Windows APIs. It winds >>> up >>> being incompatible here and there, and breaks things. >>> >> >> I don't think I follow the logic of this argument. >> > > Because if we take on the task of "fixing" Windows APIs, then we also take > on the task of documenting them, supporting them, educating people about > them, and invalidating the river of documentation that already exists on > how to program via the Windows APIs. > Hear hear! I agree, it should just be cloned verbatim. I for one have 15+ years of expectation about WINAPI, I don't want to look in any manual/reference to relearn how to use it again.
