[fpc-pascal]Apple Mac pointer problem

Olle Raab olle.r at automagika.se
Thu Sep 23 23:44:45 CEST 2004


04-09-23 23.09, skrev Stephen Downs följande:

> -----Original Message-----
> From:    Marcel Martin [mailto:mm10 at ellipsa.net]
> Sent:    Thu 9/23/2004 9:18 PM
> To:    fpc-pascal at lists.freepascal.org
> 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).



More information about the fpc-pascal mailing list