04-09-23 23.09, skrev Stephen Downs följande: > -----Original Message----- > From: Marcel Martin [mailto:[EMAIL PROTECTED] > Sent: Thu 9/23/2004 9:18 PM > To: [EMAIL PROTECTED] > Cc: > Subject: Re: [fpc-pascal]Apple Mac pointer problem > > Stephen Downs a écrit : >> >> 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; >> end; >> >> 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.
The reason you get the error msg is that fpc supports UNIV as a dummy keyword. Is it is accepted but doesn't do anything. Since the third param is declared UNIV you do not need any typecast in Metrowerks, but you need to cast to Ptr in fpc (as Marcel suggests). >From UI: FUNCTION FSRead(refNum: INTEGER; VAR count: LONGINT; buffPtr: UNIV Ptr): OSErr; >> I >> tried replacing testDataHdl^ by Ptr(testDataHdl)^ but that gives a >> similar error - Got "ShortInt", expected "Ptr" The mac type Ptr is defined as usual in the UI, as a pointer to a signed byte, hence the reference to ShortInt in the error msg, which is a signed byte. >> Does anyone know how I can get around this? > >> This is very likely a stupid suggestion but have you tried this >> >> Ptr(testDataHdl^) > I had tried that and it compiles ok but when it runs, the FSRead statement > returns an error -36 which is an I/O error Are you shure nothing else is wrong ? If you read a binary file, alignment might not be the same. Actually FPC does not align arrays the same as trad mac compilers. Olle _______________________________________________ fpc-pascal maillist - [EMAIL PROTECTED] http://lists.freepascal.org/mailman/listinfo/fpc-pascal