Symbian C++ 程式設計快速上手 (UIQ)

本文介紹如何使用Symbian SDK及相關工具進行UIQ應用程式開發。從環境搭建到基本程式架構,通過範例說明如何定義與處理選單指令,適合初學者參考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

這份教學並不是教大家如何寫程式, 而是告訴大家如何找到相關的應用程式, 進而開發一個新的程式 :P, 裡面約有 80% 都是自已摸索出來的, 所以若是觀念上有錯誤的話, 請麻煩指正, 謝謝

==========================================
準備道具:
1. Metrowerks CodeWarrior (不一定要有, 但若是想在電腦上模擬執行的話需要它)
2. Symbian SDK
3. UIQWizard

==========================================
必逛網站 (排名不分先後):
1. http://www.sonyericsson.com/developer (免費註冊後可下載 SDK 等等的文件)
2. http://my-symbian.com/forum (裡面的 C++ 討論區)
3. http://renegade.w3xs.com/droll.htm (SMan 作者網站)
4. http://www.newlc.com/ (裡面的 C++ 討論區)
5. http://www.yipton.demon.co.uk/ (SCap, EMame 作者網站)
6. http://www.paw-print.net/symbian/index.php (一個英文的 UIQ 基本寫作教學)

==========================================
基本手續:
首先, 最重要的就是先去下載 SDK 了, 目前最新的版本為 2.1 版, 你可以到 這裡下載 (225MB), 然後全部安裝 (C++, Java, Perl 等等).

為了寫程式的方便, 這時就使用 UIQWizard 來幫我們建立一個範本, UIQWizard 是用 perl script 寫成的, 所以在安裝 SDK 時記得要勾選 perl. 將 UIQWizard.zip 的檔案解壓縮到 C:/, 然後到 DOS 下面輸入 createProject.pl 後, 它會要求輸入 [軟體名稱] 和 [UID], 之後, 它便會在 C:/ 建立一個 C:/軟體名稱 的目錄...

.cpp 的檔案存於 /軟體名稱/src 裡, .h 檔存於 /軟體名稱/inc 裡...

若要 compile, 則到 /軟體名稱/group 裡執行 c.bat, 它便會將程式 compile 順便包裝成 .sis 檔...

Codewarrior 對我而言只是用來測試 compile 結果和執行Emulator 用的, 不過為了節省安裝到手機上測試的時間, 建議裝了它, 然後利用它的 File -> Import Project From .MMP file 功能, 將 /軟體名稱/group/軟體名稱.mmp 匯入 Codewarrior, 這樣便可以利用 codewarrior 這個 IDE 編寫、測試程式, 用 c.bat 來包裝軟體...

我知道這份說明寫的很爛, 有任何問題的人儘量發問, 我再補充 :P
(很多東西需要講的很詳細, 我希望是等到遇到問題時再補充, 這樣就不用怕打了沒人看了 :P)

我這裡附上 UIQWizard.zip

其他的檔案 (SDK, Codewarrior) 可以到 sonyericsson.com/developer 裡面找的到, 不過記得先註冊(免錢的), 裡面所有的功能(討論版、文件)都需要登入後才能翻閱

==========================================
如何開始?
當你將基本的設定都設好後, 下一步當然是開始寫程式了, UIQ 的主要程式介面可以經由 .rss 檔案做定義, 建議參考 SCap, SMan, 以及UIQWizard 的範本來開始, 它們都已經大概的介紹如何利用 rss 檔案建立選單、Dialog 等等.

我這裡也粗略的講一下 SCap 這個程式的原始碼, 這樣對那些第一次寫 Symbian UIQ 程式的人不會花太多時間在研究程式碼上面

在 group/SCap.rss 裡:
MENU_ITEM { command=EEikCmdAbout; txt="About"; }

看了大家大概就了解這是一個選單的定義, 顯示的是 "About", 而執行的指令為「EEikCmdAbout」, EEikCmdAbout 則需要在 SCap.hrh 裡面下定義 (詳細說明請參考 SDK 的 » UIQ SDK » C++ » Source file description » How to define command IDs 部分), 當 SCap 程式執行, 並點擊 About 這個選項時, 程式會傳送連結 About 這個選單的指令 (EEikCmdAbout) 去 HandleCommandL (SCap.cpp) 裡, 而在這個 Function 裡, 你就要定義當 About 點擊下去時, 會執行什麼樣的指令:

case EEikCmdAbout:
DisplayAboutDialogL();
break;

所以當 About 點擊下去, 它會去執行 DisplayAboutDialogL() 這個 function
換句話說, 指定一個指令給選單的項目, 然後當點擊時, 它會跑去 HandleCommandL 裡找該指令, 並執行該指令要跑的東西... (說的好像有點!@#$%^ :P)

一個選單的處理程序就是這樣了, 剩下的可能就要請大家自已摸索了(太多了說不完, 而且說的又不一定是正確的觀念 :P ), 建議大家可以先好好的研究一下如何寫 .rss 檔的定義, 相信若是了解如何的去建立介面, 剩下的部分我想懂如何寫程式的人都知道該怎麼做了 :P

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值