[fpc-pascal] PWideChar vs. ^
Jonas Maebe
jonas.maebe at elis.ugent.be
Fri Mar 13 18:14:09 CET 2009
On 13 Mar 2009, at 17:46, Marc Santhoff wrote:
> maybe this is a dumb question, but:
>
> If I have a variable declared as
>
> var
> s: PWideString;
>
> why is an exception (AV) thrown when using
>
> something := s^;
>
> but not when using
>
> something := PWideChar(s);
>
> ?
> Maybe this is special behaviour of the routine getting the variable,
> it
> is
>
> TTreeView.AddChild(ParentNode: TTreeNode; const s: string): TTreeNode
1) you're not saying what the type of "something" is
2) a pwidechar and a pwidestring are completely different things (a
pwidestring points to a widestring, which i, turn is sort of like a
reference-counted pwidechar; so typecasting a pwidestring to a
pwidechar does not make sense)
3) you're not showing how the pwidestring was allocated and initialised
4) the "s" parameter in the procedure definition at the end is a
string, while in the other code it's a pwidestring. It is also not
clear to me what this routine has to do with any of the other code
snippets that you posted
Please always include a compilable sample program when asking
questions about code behaviour. Without it, all that can be done is
hand waving. It may be more work for you, but it saves a lot of time
asking questions after which that work has to be done anyway.
Jonas
More information about the fpc-pascal
mailing list