On Thu, 27 Sep 2007, Marco van de Voort wrote:
> > [EMAIL PROTECTED] (Marco van de Voort) wrote: > > > A cast is really a cast. IOW the cast pchar(ansistring) is mostly a > > > no-op. Traditional C code then usually treats the #0 as end of > > > string. > > > > PChar(AnsiString) was a no-op typecast in the past and is nowadays a > > function. It checks whether the AnsiString is nil and if yes returns a > > pointer to a string containing one character: #0. > > > > That means: > > Pointer(AnsiString) <> Pointer(PChar(AnsiString)) > > > > To get a no-op typecase you can use: > > MyPChar:=PChar(Pointer(AnsiString)); > > Is this delphi compat, and if yes, what is this exactly for? It is Delphi compatible. PChar(AnsiString) Will always point to a null-terminated string. If the string is empty (which means the pointer value is Nil), a pointer to a pre-defined null-terminated string is returned. In other words: you always get a non-nil value. On the other hand: Pointer(AnsiString) Returns Nil if the string is empty. Michael. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal