[fpc-pascal]Apple Mac pointer problem
houppermans at home.nl
Fri Sep 24 03:06:16 CEST 2004
----- Original Message -----
From: "Stephen Downs" <stephend at e-tempest.co.uk>
To: <fpc-pascal at lists.freepascal.org>
Sent: Thursday, September 23, 2004 8:49 PM
Subject: [fpc-pascal]Apple Mac pointer problem
I am porting a Mac CodeWarrior project to FreePascal and have hit a
compile problem with a pointer. In my original code I have a structure
defined along the lines of
testData = record
testIndex : array [0..12] of integer;
testDataPointer = ^testData;
testDataHandle = ^testDataPointer;
Within my main code I open a file and try to read it into my structure
testDataHdl := testDataHandle(NewHandleClear(sizeof(testData)));
OSError := FSRead(fileRefNum, numberOfBytes, testDataHdl^)
The FSRead line fails with error: 62: Incompatible type for arg no. 3:
Got "testDataPointer", expected "Ptr" - the third parameter for FSRead is a
pointer. I presume this is because FreePascal uses typed pointers. I
tried replacing testDataHdl^ by Ptr(testDataHdl)^ but that gives a
similar error - Got "ShortInt", expected "Ptr"
Does anyone know how I can get around this?
Euhm... just my two cents:
testDataHdl is in fact a pointer to a pointer to data.
so testDataHdl^ points to a pointer.
If you want to read a pointer from the file that's good.
But if you actually want to read the data then it's a mistake.
Then you need to use this:
More information about the fpc-pascal