Sorgenti di esempio Symbian c++
Un semplice eseguibile .exe multiplatform
Per iniziare a programmare in Symbian c++ la cosa migliore da fare è partire da applicazioni semplicissime.
Nell'SDK per UIQ ci sono numerosi esempi, ma per la maggior parte sono
applicazioni che, sebbene siano "di base", sono comunque piuttosto
complesse per un principiante, perche' composte da svariati file
sorgente (.cpp) interconnessi tra loro. Ma questa struttura non
è indispensabile per un programma C++. La struttura "minima"
necessaria per un programma c++ che giri su Symbian UIQ (e
probabilmente anche altre varianti Symbian) è questa:
Struttura di base di programma Symbian c++
Bld.inf
HelloWorld.cpp
HelloWorld.mmp
Il primo file contiene le informazionu usate da BLDMAKE per "preparare il terreno" per il comando ABLD;
Il secondo file è ovviamente il sorgente c++.
Il terzo file contiene le proprietà del progetto.
Questo è il contenuto dei tre file:
BLD.INF |
|
PRJ_MMPFILES
HelloWorld.mmp |
Prima riga del file, obbligatoria.
Nome del file .mmp |
HelloWorld.cpp |
|
#include "CommonFramework.h"
// do the example
LOCAL_C void doExampleL()
{
_LIT(KHelloWorldText,"Hello world!\n");
console->Printf(KHelloWorldText);
} |
File "include" comune.
Commento.
Definizione dell'unica funzione del programma.
Definizione del descrittore.
Stampa a video.
|
HelloWorld.mmp |
|
TARGET HelloWorld.exe
TARGETTYPE exe
UID 0
SOURCEPATH .
SOURCE HelloWorld.cpp
USERINCLUDE .
USERINCLUDE ..\CommonFramework
SYSTEMINCLUDE \Epoc32\include
LIBRARY euser.lib |
Nome del file compilato finale.
Tipo del file compilato.
UID dell'applicazione.
Percorso del sorgente del progetto.
Nome del sorgente.
Percorso dei file .h scritti dal programmatore.
Percorso dei file .h di sistema.
Librerie associate ai file .h di sistema. |
Compilazione del programma da linea di comando
Per compilare questo semplicissimo programma, ammettendo che l'SDK sia
già correttamente configurato, sarà sufficiente:
- aprire una finestra DOS
- portarsi nella cartella contenente i tre file
- digitare bldmake bldfiles
- digitare abld build armi urel
Se tutto va bene, dopo poco si otterrà un file HelloWorld.exe nella cartella C:\Symbian\UIQ_21\epoc32\release\armi\urel
Copiando questo file in un punto qualunque del cellulare,
sarà possibile lanciarlo utilizzando un file manager (i file
.exe non hanno infatti nessuna icona associata), oppure dalla shell
"DOS" dei cellulari UIQ (z:\system\samples\eshell.exe).
Provare programmi sull'emulatore
Un programma compilato per il cellulare non può funzionare
sull'emulatore: deve essere ricompilato appositamente per l'emulatore.
Lo si può fare tramite l'ambiente integrato "carbide.c++", come
descritto dettagliatamente in questa pagina.
Note:
1) Ogni volta che si include un file .h di
sistema, cioè fornito con l'SDK, bisogna specificare in questa
riga quale file .lib è ad esso associato. Per sapere il nome del
file, bisogna consultare la Symbian Developer Library (SDL), del
Symbian 7.0 in generale o del sistema UIQ in particolare: la prima
può essere consultata online o scaricata dal sito Symbian; la seconda è inclusa nell'SDK sotto forma di file .chm
Esempio (tratto dalla SDL UIQ 2.1): |
|
» UIQ 2.1 SDK » Developer Library »
API Reference » C++ API reference »
Timers and Timing Services » RTimer
Location: e32std.h
Class RTimer
Support
Supported from 5.0
Description
[...]
|
"Percorso" nella SDL.
File .h
Libreria associata. |
2) Il file CommonFramework.h è
comune a tutti i sistemi Symbian: un eseguibile che fa uso solo di
questo .h dovrebbe poter girare su qualunque Symbian, indipendentemente
dall'interfaccia grafica del telefono (perché gli eseguibili NON hanno
interfaccia grafica).
3) Ogni applicazione deve avere un suo UID
univoco per poter funzionare. SOLO A SCOPO DI TEST si possono usare gli
UID compresi tra 0x0100.0000 e 0x0fff.ffff , altrimenti occorre
chiederne uno alla Symbian.
4) Un errore molto frequente in fase di
compilazione è dovuto alla presenza del file cygwin32.dll nella
cartella system32 di WindowsXP, che non è compatibile con l'SDK
Symbian e "copre" quello contenuto nell'SDK: occorre rinominarlo o
cancellarlo perche' la compilazione funzioni. LINK
Indice degli appunti di programmazione:
Appunti di programmazione in ambiente Symbian
C++
Usare Carbide.c++
Importare un progetto in Carbide.c++ da un file .MMP
Compilare un eseguibile Symbian .exe multiplatform
Appunti di programmazione PersonalJava
Compilare un'applicazione PersonalJava, creare i file .APP, .AIF e .TXT per lanciarla, e installarla sull'emulatore.
Appunti di programmazione Java Midlet