WinAPI for druntime and OpenGL for deimos.

Vladimir Panteleev vladimir at thecybershadow.net
Sat Nov 24 06:22:58 PST 2012


On Saturday, 24 November 2012 at 07:23:18 UTC, Walter Bright 
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.

I don't think strong typing for HANDLE affects any of the above. 
I believe all MS examples use casts for clarification of intent 
even when the conversion would've been implicit.


More information about the Digitalmars-d mailing list