Symbian
Symbian OS Library

FAQ-0847 How can I work out which C++ APIs are supported on which phones?

[Index][spacer] [Previous] [Next]



 

Classification: C++ Category: Development
Created: 02/04/2003 Modified: 02/07/2003
Number: FAQ-0847
Platform: Symbian OS v6.0, Symbian OS v6.1, Symbian OS v7.0

Question:
Not all Symbian OS APIs documented in the Symbian Developer Library for a particular OS version are on all SDKs. Nor are all the APIs publicised in the SDK for a particular reference design available on all phones based upon that reference design. How can I be sure the APIs I am using in my code will be supported on the target phone?

Answer:
There are three comments that can be made in reply to this question:
      1. According to the formal definition of Symbian OS, not all its public APIs need be supported on every phone. However very many of them do have to be on every phone and the overwhelming majority are on every phone. The situation is described in relation to all versions of Symbian OS and all phones currently on the market in the technical paper "Symbian OS system definition." This gives an albeit coarse-grained picture of which APIs are available on which phones which should help resolve many questions.
      2. In those few cases where a Symbian OS API is omitted from a reference design such as UIQ or Series 60 (and so in practice from all phones based on this reference design), it should be a straightforward task to discover the omission as, when you try to build your code against the relevent SDK (if not before), you will get a link error.
      3. Even before writing any code, it should be possible to discover whether or not any particular API is or is not supported on the phone you are targeting. First, if you look up the class which encapsulates the API of interest in the appropriate version of the Symbian Developer Library, you will be able to find which lib the class is built into. Then, if a dll of the same name is provided on the target phone, you can assume that the API you want is available. Notice that Series 60 and UIQ phones ship without a file browser, so you will have to obtain one and install it to do this checking. File browsers are readily available for download from Symbian OS community sites. You will find the dlls in \system\libs and a few other subfolders of \system.
        The above comments should address most issues, although there is no guarantee that, in the case of so-called "optional replaceable" components, all published APIs will be supported in the dll version published. However, where Symbian OS licensees customise or replace a Symbian component (usually by adding functionality or modifying the implementation), the associated dll will usually have its name converted to upper case letters (or renamed completely in the case of a replaced component).