[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=EBl 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=3Den&
> > >
> > > 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 testi=
ng =

> 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=3Dlongword;
{$endif}

... 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."

Dani=EBl


More information about the fpc-devel mailing list