[fpc-devel] Changing Windows API A routines in SysUtils to W in Windows NT
Craig Peterson
craig at scootersoftware.com
Wed Feb 8 17:28:01 CET 2012
On 2/8/2012 9:21 AM, Felipe Monteiro de Carvalho wrote:
> Windows9x has all W functions,
No it does not. The Microsoft layer for Unicode is a redistributable
DLL that provides W versions of functions and calls the A versions
internally. Win9x does export a bunch of W functions so you can link to
both versions and conditionally call the correct one, but if you
actually try calling the W versions the vast majority will immediately
fail with ERROR_CALL_NOT_IMPLEMENTED.
The platform SDK used to say which platforms supported the W versions,
but that information hasn't been included in quite a while.
For simplicity's sake, assuming continued Win9x support is even
desirable, the RTL should call the generic versions, and Windows.pas
should have {$IFDEF UNICODE} blocks to decide between the A and W
versions. The TNT Unicode controls did it the way you're suggesting, by
deciding at runtime, so it is possible, but it would overly complicate
the RTL code for an increasingly irrelevant platform.
--
Craig Peterson
Scooter Software
More information about the fpc-devel
mailing list