Thread overview | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
November 12, 2015 win32 from master: unicode functions by default? | ||||
---|---|---|---|---|
| ||||
Hi, by using the win32 library from master, the functions aliases to the ansi windows functions (...A) instead of the unicode functions (...W). Is there a way to control this behavior beside using the explicit function names (A/W)? Kind regards André |
November 12, 2015 Re: win32 from master: unicode functions by default? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andre | On Thursday, 12 November 2015 at 04:58:42 UTC, Andre wrote:
> Hi,
>
> by using the win32 library from master, the functions aliases
> to the ansi windows functions (...A) instead of the unicode functions (...W).
> Is there a way to control this behavior beside using the explicit function
> names (A/W)?
>
> Kind regards
> André
version=Unicode on the compiler command line.
|
November 12, 2015 Re: win32 from master: unicode functions by default? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | On Thursday, 12 November 2015 at 05:08:25 UTC, Mike Parker wrote:
> On Thursday, 12 November 2015 at 04:58:42 UTC, Andre wrote:
>> Hi,
>>
>> by using the win32 library from master, the functions aliases
>> to the ansi windows functions (...A) instead of the unicode functions (...W).
>> Is there a way to control this behavior beside using the explicit function
>> names (A/W)?
>>
>> Kind regards
>> André
>
> version=Unicode on the compiler command line.
perfect. Thanks a lot.
Kind regards
André
|
November 12, 2015 Re: win32 from master: unicode functions by default? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | On Thursday, November 12, 2015 05:08:24 Mike Parker via Digitalmars-d-learn wrote:
> On Thursday, 12 November 2015 at 04:58:42 UTC, Andre wrote:
> > Hi,
> >
> > by using the win32 library from master, the functions aliases
> > to the ansi windows functions (...A) instead of the unicode
> > functions (...W).
> > Is there a way to control this behavior beside using the
> > explicit function
> > names (A/W)?
> >
> > Kind regards
> > André
>
> version=Unicode on the compiler command line.
It seems pretty wrong for the A versions to be the default though...
Still, even in C++ code, I've generally taken the approach of using the W functions explicitly in order to avoid any potential problems with A functions being called accidentally. Regardless, the whole A vs W thing with Win32 is not exactly one of its nicer features. :|
- Jonathan M Davis
|
November 13, 2015 Re: win32 from master: unicode functions by default? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jonathan M Davis | On Thursday, 12 November 2015 at 15:58:53 UTC, Jonathan M Davis wrote: > On Thursday, November 12, 2015 05:08:24 Mike Parker via >> version=Unicode on the compiler command line. > > It seems pretty wrong for the A versions to be the default though... > > Still, even in C++ code, I've generally taken the approach of using the W functions explicitly in order to avoid any potential problems with A functions being called accidentally. Regardless, the whole A vs W thing with Win32 is not exactly one of its nicer features. :| > > - Jonathan M Davis I've gotten into the same habit. But it appears the switch to dynamic loading has made it so that only the A versions or only the W versions are available. You no longer get both. https://github.com/D-Programming-Language/druntime/blob/master/src/core/sys/windows/w32api.d#L85 |
November 13, 2015 Re: win32 from master: unicode functions by default? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jonathan M Davis | On Thursday, 12 November 2015 at 15:58:53 UTC, Jonathan M Davis wrote: > It seems pretty wrong for the A versions to be the default though... For my money it's a plain bug in bindings :) > Still, even in C++ code, I've generally taken the approach of using the W functions explicitly in order to avoid any potential problems with A functions being called accidentally. Regardless, the whole A vs W thing with Win32 is not exactly one of its nicer features. :| In C headers it's a backward compatibility for code written for win9x. As such it doesn't make much sense for new code and especially for D code. The mess is a price for thoughtless copying. |
November 13, 2015 Re: win32 from master: unicode functions by default? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | On Friday, 13 November 2015 at 05:09:12 UTC, Mike Parker wrote:
> I've gotten into the same habit. But it appears the switch to dynamic loading has made it so that only the A versions or only the W versions are available. You no longer get both.
>
> https://github.com/D-Programming-Language/druntime/blob/master/src/core/sys/windows/w32api.d#L85
That only declares aliases without postfix, actual declarations are available unconditionally barring a few bugs.
|
November 13, 2015 Re: win32 from master: unicode functions by default? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kagamin | On Friday, 13 November 2015 at 08:10:12 UTC, Kagamin wrote:
> On Thursday, 12 November 2015 at 15:58:53 UTC, Jonathan M Davis wrote:
>> It seems pretty wrong for the A versions to be the default though...
>
> For my money it's a plain bug in bindings :)
Yep, we don't support non-Unicode Windows versions anyway so there's no reason for this. It's not as important as in C though, since TCHAR does not have a big role in D - you will need to be explicit to which character type you convert to when converting from D strings anyway.
If only Microsoft would have adopted UTF-8 as an 8-bit locale... if only.
|
November 13, 2015 Re: win32 from master: unicode functions by default? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vladimir Panteleev | On Friday, 13 November 2015 at 08:44:33 UTC, Vladimir Panteleev wrote:
> If only Microsoft would have adopted UTF-8 as an 8-bit locale... if only.
Then you would need to do all TCHAR stuff from windows headers in order to conditionally compile for utf-8 for say Windows 20 and for utf-16 for previous versions.
|
Copyright © 1999-2021 by the D Language Foundation