R: Re: Mac osx callback functions parameters: wrong values in 386 mode.

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

R: Re: Mac osx callback functions parameters: wrong values in 386 mode.

fpanasiti@tiscali.it
Thank you very much for your help.

Regards
Francesco

----Messaggio originale----
Da: [hidden email]
Data: 06/09/2010 18.13
A: "[hidden email]"<[hidden email]>, "FPC-Pascal users
discussions"<[hidden email]>
Ogg: Re: [fpc-pascal] Mac osx callback functions parameters: wrong
values in 386 mode.


On 06 Sep 2010, at 17:21, [hidden email] wrote:

> Using control callback function with a control (a button)
apparently
> results in wrong
> parameter values when compiling to 386 (values are correct
compiling
> to ppc).

The default calling convention on non-i386 platforms is mostly the
same as the C calling convention. On i386, it's different for Delphi
compatibility. Add the "mwpascal;" modifier at the end of the function
declaration to get the same calling convention behaviour as with
MetroWerks Pascal (that's also the calling convention expected by the
declarations in the macosall unit).

>    lControlActionUPP:= NewControlActionUPP(ControlActionProcPtr
> (@myActionProc));

By adding an explicit typecast you make it impossible for the
compiler to tell you that the routines are incompatible. Remove the
ControlActionProcPtr typecast, and if you are using MacPas mode then
also remove the "@". The compiler will then give an error if the
callback's signature is wrong, and it will also print the signature of
the expected type.


Jonas_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal





Risparmia con Tutto Incluso Light: telefono + adsl 8 mega a soli 19,95 € al mese per un anno!SCONTO DI 120 EURO! http://abbonati.tiscali.it/telefono-adsl/prodotti/tc/tuttoincluso_light/?WT.mc_id=01fw
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal