[fpc-devel] StrPos giving a access violation

Jonas Maebe jonas.maebe at elis.ugent.be
Mon Dec 12 11:42:15 CET 2005


On 12 dec 2005, at 08:12, Graeme Geldenhuys wrote:

>> StrPos is expecting 2 PChar params and not a Pointer.
>> Please use PChar(lFrom) and PChar(lSearch) to let the compiler  
>> make the proper string to PChar conversion.
>> You never ever can cast a string to a pchar using Pointer()
>
> I see your point, and amended my code.  Nonetheless, Delphi never  
> through a AV.  I see Jonas created a fix for it though.

It is very dangerous to rely on undocumented behaviour. At least the  
TP documentation does not specify what happens if you pass a null  
pchar to strpos, I don't know about Delphi. If you typecast an  
ansistring to a pchar, then the compiler makes sure that if the  
ansistring is empty (and thus a null pointer), a valid pointer to an  
empty null-terminated string is returned.


Jonas



More information about the fpc-devel mailing list