さて、準備が整いました。最初のSymbian OS向けのプログラムを作成するときです(“書く”といっていないことに要注意)。
それでは、[プログラム]メニュー(Windows Vistaであれば[すべてのプログラム])−「Carbide.c++」の中にある「Carbide.c++ v1.2」をクリックし、Carbide.c++を起動してください。
起動したら、[File]メニューから[New]−[Project]を選択し、[New Project]ダイアログを表示します。そして、[Symbian OS]ツリーから[Symbian OS C++ Project]を選択してください(画面4)。
画面4 プロジェクト種別選択
続く[New Symbian OS C++ Project]ダイアログでは、プログラムの形式を選びます。今回はHelloWorldを出力するだけなので、[Generic Symbian OS]ツリーから[Basic console application (EXE)]を選択してください(画面5)。
画面5 プログラム形式選択
次の[New Basic console application (EXE)]ダイアログではプロジェクト名の設定を行います。今回は画面6のとおり、「HelloWorld」と入力します。
画面6 プロジェクト名設定
次はSDKの設定です。いまから作るプロジェクトがどのSDKに対応するかをIDEに教える必要があります。今回は3rd Ed FP2 Betaを使うので、[S60_3rd_FP2_Beta]にチェックを入れます(画面7)。
画面7 SDK選択
最後に通常ファイルヘッダに書かれるべき作成者の名前やコピーライト表示を設定します(画面8)。以後、IDEがプロジェクト内にファイルを自動生成する際には、この値が自動的に補完されることになります。
画面8 基本設定
お疲れさまでした。[Finish]ボタンを押下して作業を完了してください。
プロジェクトの生成が完了すると、画面の左上のペインに今回作成したHelloWorldの情報が表示されているはずです。srcフォルダを展開し、HelloWorld.cppをダブルクリックしてください(画面9)。
すると画面中央に、いま作成されたテンプレートソースが表示されます。この内容を以下に示します(IDE出力のソースからコメントだけ一部変えています)(リスト1)(表2)。
リスト1 HelloWorld.cpp (こちらをクリックするとソースファイルをダウンロードできます)
画面8で設定した値 | |
「堅牢で省資源な文字列“ディスクリプタ”」と 「並行処理の奥義、非同期フレームワークとは?」に関連する記述 |
|
「画期的な『非同期完了待ち』のフレームワーク」に関連する記述 | |
「C++のメモリリークを防ぐフレームワーク」に関連する記述 |
「では、Hello Worldを書いてみましょう」といいたいところですが、ソースを見てみるとMainL()という関数のサンプル実装としてすでにHello Worldの出力が埋め込まれています。実は、IDEを使いたかった理由の1つがこれです。Symbian OS向けのプログラムは決まりもの(ボイラープレート)のコード量が比較的多いため、最初はちょっと抵抗感がありますが、最近ではIDEがこれを肩代わりしてくれるようになりました。これで安心して「興味があること」に集中して議論を進めることができます。
それではこのHello Worldに入っているSymbian OSの基本パターンとは……と解説に入っていきたいところですが、残念ながら紙数が尽きました。続きは次回に回すとして、最後にこのプログラムの実行方法をお伝えします。
[Project]メニューから[Clean]を選択すると、プロジェクトのリビルドを行うことができます。この結果、実行バイナリ(プロジェクト名と同名のexeファイル。今回の場合はHelloWorld.exe)が、
C:\Symbian\9.3\S60_3rd_FP2_Beta\epoc32\release\winscw\udeb |
以下に生成されます。これをエクスプローラなどから直接ダブルクリックして、実行してみてください(画面10)。
画面10 Hello Worldの実行結果(エミュレータの画面)
◇
今回はプログラム作成編の第1回ということで、SDK、IDEの導入にフォーカスしてお送りしました。少なくともツール周りに関しては「標準的な開発環境だよね」と思っていただけたのではないでしょうか。
次回は簡単なGUIアプリケーションの作り方を含めて、これからいろいろ実験していくための基礎固めを行う予定です。(次回に続く)
Copyright © ITmedia, Inc. All Rights Reserved.