Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2010-09

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

1 message · 1 person ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Unknown author

Thank you very much for your help.

Regards
Francesco

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

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 -
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