Hello,
I've updated the Mac OS X Common Pascal Interfaces in the FPC svn repository, from the http://svn.freepascal.org/svn/macosxintf/trunk repository.
As mentioned earlier, the main new things are:
* all headers that were present have been updated to their Mac OS X 10.6 version
* all headers are now 64 bit clean (and when compiled for 64 bit, only functions available to 64 bit programs are made visible)
* the headers can now also be used when compiling for iPhoneOS/ARM
* CoreType, CoreVideo and AudioUnits header translations have been added
There are however some changes to the headers that can cause problems for programs written against the older version of the headers. I've compared all functions/procedures with their old declarations, and posted a list of the differences at
http://wiki.freepascal.org/User_Changes_Trunk#MacOSAll_unit:_changed_parameter_types
I did not compare the declarations of all types though (it's harder to generate an easily comparable list for those), so there may be more differences in that respect.
Note especially the last part of this remark: "Remedy: Either adjust your code, or file bug reports asking to revert to the old signatures (especially for deprecated routines that won't be updated in the future anymore anyway, this should be no problem)."
There is also two special things when using the 64 bit version of the headers:
a) the MacOSAll unit will in that case by default only link against the CoreFoundation framework, rather than against the Carbon framework. The reason is that although there is a 64 bit version of the Carbon framework, it will go away in the future and hence it's not a good idea to make programs depend on it.
b) the GetKeys routine is not available in the 64 bit version of MacOSAll. The reason is that this function is implemented using a wrapper, which in turn calls the real GetKeys routine from the Carbon framework. As a result, if smart linking/dead code stripping is not enabled, then the presence of this wrapper in your program makes your program depend on the Carbon framework, which as mentioned above is not very nice for 64 bit programs. Therefore this one function is available in a separate unit called KeyEvents when compiling for 64 bit. For 32 bit programs, this units also exists, but is empty (simply to avoid requiring ifdefs in case you need this routine in 64 bit).
Jonas
---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program.
