[fpc-pascal] MacOS and Opaque types
Matt Emson
memsom at interalpha.co.uk
Fri Feb 22 11:47:45 CET 2008
Bent Normann Olsen wrote:
> I'm new to Mac development environment, and I was looking thru the
> CoreMIDI/MIDIServices.h, to see how much work it's going to take (at least
> maybe partially) to implement some of the functions to own projects. I hit
> the wall with some typedef, for example "struct OpaqueMIDIClient *
> MIDIClientRef", and I now understand that Apple do not always want
> developers to know what is behind some type definitions. Is this true?
>
As an aside - a lot of why Apple does this in Carbon stems back to the
old MacOS 9.x heritage. In the old pre 10,x system, the memory manager
forced the programmer to refer to data by "handles" that were references
to pointers. This was historical and was originally because of the funky
things it did with shuffling pointers around in memory to handle the
fact that the early hardware (Mac 128 for example) was only barely able
to run the OS within the memory constraints of the hardware. PowerPC
might have altered this, dunno, but the basic OS worked on that premise
for 68000 at least. Carbon should have minimised the madness, but I
guess some still persists?
More information about the fpc-pascal
mailing list