Aaron Ardiri wrote in message <40976@palm-dev-forum>...
>
>
> Palm SDK's are backward compatible - ie: you can compile under
> 3.5 or 4.0 SDK and it will run on a 1.0 device, as long as you dont use
> an API call specific to 3.5 or 4.0, it should work backwards.
>
> why does it work?
>
> Palm adds API calls, by increasing the trap #'s - hence, the older
> trap's remain the same way back to version 1.0. you should, however,
> check the device version before calling a specific API
Bzzt. Thanks for playing.
When palm ups the dev system, sometimes API calls get enhanced.
When this happens, the old API -trap- remains, but the code to
invoke it changes. The new way to invoke the old trap is usually
the old symbol with a suffix (V10, V20, V31, V33) ... if you use
the old symbol straight, it will be mapped to the -new- trap. Thus,
1.0 code compiled under the 3.5 dev sys may _NOT_ work on
a 1.0 device because it could be tripping different trap numbers.
For example, DmFindSortPosition originally mapped
to trap 0xA07D ... now it maps to 0xA2F2. If you want to invoke
the original trap, you have to use DmFindSortPositionV10. So
if you've got code written using DmFindSortPosition, it will NOT
work on a 1.0 system anymore since it will invoke a trap that was
not implemented on the 1.0 system
IMO this is one of Palm's biggest failings. Old code should compile
properly unchanged. Once a symbol has been mapped to a trap,
it should STAY mapped to that trap. If you want to provide an enhanced
version of that old API call, the NEW one should be given a new
symbol.
--
-Richard M. Hartman
[EMAIL PROTECTED]
186,000 mi/sec: not just a good idea, it's the LAW!
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palmos.com/dev/tech/support/forums/