in WinAPI each type of handle has it's own type. in Druntime it's all aliased to void*. It currently doesn't match WinAPI.<div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Nov 24, 2012 at 1:21 AM, Walter Bright <span dir="ltr"><<a href="mailto:newshound2@digitalmars.com" target="_blank">newshound2@digitalmars.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 11/23/2012 5:57 AM, Vladimir Panteleev wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
There might be some incompatibilities, for example due to how the HANDLE type is<br>
declared. In C, you can use either 0 or NULL as a parameter to a function<br>
accepting an integer or pointer. In D, you cannot. IIRC, some types were<br>
declared differently in Druntime's modules and in the win32 bindings.<br>
<br>
If breaking code were not an issue, the best solution would be to make HANDLE a<br>
unique, opaque type (like a struct wrapping an intptr_t or void*) - which is<br>
exactly how it should be treated. It would need to support assignment/creation<br>
from "null" though.<br>
</blockquote>
<br></div>
This is why I don't approve of attempts to "fix" Windows APIs. It winds up being incompatible here and there, and breaks things.<br>
<br>
We all know what HANDLE should be, but it isn't. The D definition of HANDLE should match what Microsoft's windows.h declares it as.<br>
<br>
Any attempt to fix APIs to C libraries, etc., should be in a separate layer that goes on top of the D interface to those APIs.<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Bye,<br>Gor Gyolchanyan.<br>
</div>