[fpc-devel] Widestrings in win32

Daniël Mantione daniel.mantione at freepascal.org
Sat Jun 16 10:10:33 CEST 2007

Op Sat, 16 Jun 2007, schreef Martin Schreiber:

> On Saturday 16 June 2007 08.57, Daniël Mantione wrote:
> > Op Sat, 16 Jun 2007, schreef Martin Schreiber:
> > > Hi,
> > > It seems that CG plans to implement an non BSTR widestring type for
> > > win32:
> > > http://groups.google.ch/group/borland.public.delphi.non-technical/msg/7ca
> > >eced42f1934a4?hl=en&
> > >
> > > The introduced string handling for the "Unicode VCL" is equivalent to the
> > > string handling in MSEgui BTW.
> >
> > Noted. As COM incompatibilty seems preferable over not working
> > widestrings, shall I disable the winlikewidestring in 2.1.5?
> >
> I would appreciate very much. If you can do so, I could restart the testing 
> and debugging  of FPC 2.2.

I made the change, could you please test for any problems, as we are 
really close to 2.2.0.

> > Can someone reply Allan Bauer about using ptrint, and better, ptruint
> > (explain pitfalls). It seems I have been banned from that newsgroup
> > yesterday, without any apparent reason :(
> >
> Please post on this list what you want to write to him, I'll try to feed 
> forward.

Something like this?

"Note that casting pointers to signed values is often a bad idea, since 
the virtual address space on a 32-bit system is often 3 gigabytes, i.e. 
pointers can have values between $80000000..$c0000000. A signed type 
causes trouble in pointer value comparisons (like if p>q then).

In Free Pascal there already exist two types ptrint and ptruint (signed 
and unsigned) for this purpose, you might want to recycle them especially 
as many people are currently using constructions like:

{$ifndef FPC}
type ptruint=longword;

... in order to be able to get their code to work on Win64 using FPC; this 
will make it easier for people to switch back to Delphi for 64-bit 
development when it is ultimately released."


More information about the fpc-devel mailing list