Experience Prototypistのマルチリンガル子育て+プログラミングブログ

Design Thinking、語学(英語、中国語、韓国語)、日中マルチリンガル育児、littleBitsやRaspberry Pi, Arduinoを使ったExperience Prototypingネタ。

C++で書ける! 携帯電話用OS Symbian OSプログラミング



上述のInterface 2005年5月号中の1号読みきりの記事(pp.151-159の全9ページ)。筆者はシンビアンの鎌田國生氏。やっていることはSymbian版のHello Worldであるが、Symbian固有の内容がまとめられており、非常に読みやすかった。

Symbian固有の内容というのは、具体的にSymbian OSの主な基本型(charはTInt8など)、クラスの命名規約(スタックヒープに割り当てられるクラスはTで始める(前述のTInt8も同様)、CBaseクラスから派生し、ヒープに割り当てられるクラスはCではじめる、など)、例外キャッチのトラップハーネス(記事にもあるが、Cのsetjump()/longjump()に似ている)、リーブとクリーンアップ・スタックを併用することによる資源の解放忘れの防止といったところである。なお、資源の解放忘れといった場合、プログラミング上の不注意で発生するというより、むしろ、たとえばアプリケーションが途中で例外をスローして異常終了するようなとき(資源に限りがあるので、たとえば、メモリのアロケーションができないなんてことも(PC上で動作するアプリケーションに比べて)よく発生しうる)に、いかにつかんでいる資源を解放し、スタックの状態を元に戻すのか、といった感じである。

なお、リスト2 helloworld.mmpの8行目、「LBRARY euser.lib」の部分は「LIBRARY euser.lib」でなければ、ビルドに失敗してしまうので念のため。