Graeme Geldenhuys wrote:
Hi,
The 3rd unit test fails due to StrPos giving a access violation. I ran
this same unit test under Delphi 7 and it passed as StrPos returned a
nil value when passing two '' param values.
Has this been reported as a bug yet?
----------------- CUT -------------------
var
lFrom: string;
lSearch: string;
lResult: PChar;
begin
lFrom := 'abc';
lSearch := 'b';
lResult := StrPos(Pointer(lFrom), Pointer(lSearch));
Eeeeuwww....
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()
Marc
AssertEquals('Failing on 1', 'bc', string(lResult));
lSearch := 'x';
lResult := StrPos(Pointer(lFrom), Pointer(lSearch));
AssertEquals('Failing on 2', '', string(lResult));
lFrom := '';
lSearch := '';
lResult := StrPos(Pointer(lFrom), Pointer(lSearch));
AssertEquals('Failing on 3', '', string(lResult));
----------------- END -------------------
Regards,
- Graeme -
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel