My Photo
無料ブログはココログ
September 2019
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

他のアカウント

お気に入りのもの

  • SONY: SONY PHA-2
  • iCOP: VESAPC eBOX3310 VEPCEB31
  • Windows Embedded CE 6.0組み込みOS構築技法入門 (マイクロソフト公式解説書)

eBOX-3310でWEC7:SDKのビルド

eBOX3310の立ち上げもほぼ終了し、これからはアプリケーション編に突入します。Windows Embedded Compact 7でアプリケーションを開発するにはPlatform Builderを使うことも出来ますが、今回はVisual Studio 2008を使うことを前提に話を進めます。Visual Studio 2008でアプリケーション開発をするためには、開発ターゲット用のSDKが必要となります。今日はそのSDKのビルドについてです。

最初にこのSDKについてですが、これはVisual Studioでアプリケーション開発をする際には必ず必要なものです。SDKにはターゲットデバイスがサポートしているAPIの一覧が含まれていて、アプリケーション開発時に使用できるAPIを参照するためのものだからです。仮にターゲットデバイス用ではないSDKを使用して待った場合、実行時のAPIコールでExceptionが発生して、期待する関数が呼び出されないことになります。WinCE/WECの場合、OSイメージには、開発者が必要とするモジュールを組み込むのですが、逆に言うと、必要のないモジュールは組み込まれません。例えばWindows Media Technology関連のモジュールが組み込まれていないシステムでは、これらの機能を呼びだそうとしても、ライブラリが含まれていないため動作しないということは容易に想像できると思います。

したがってOSイメージを構築する人は、カタログの構成などを変更した際に、SDKを構築し直し、アプリケーション開発者に提供する必要があります。またアプリケーション開発者は、新しいOSイメージが配布された際は、古いSDKをアンインストールし、新しいSDKをインストールしてアプリケーションの開発を進めることになります。極端なことを言うと、SDKが更新されるたび、すべてのアプリケーションの再ビルドが必要となるのです。それをできるだけ避けるには、(無理だけど)最初からカタログ構成を決めるか、カタログへは追加のみとすることで、上位互換性を保つといったことしかないので、その管理はシステム開発では重要となります。

さて前置きはこれくらいにして、PB7でのSDKのビルドについて話を進めます。最初にSolution ExplorerでSDKsを見つけ、そこを右クリックしてください。今回はSDKを新規に作成しますので、プルダウンメニューから「Add New SDK...」を選択します。

Sdk01

すると作成するSDKのPropertyを設定するダイアログが開きますので、必要な項目を入れていきます。GeneralではSDKの名前や、バージョン、会社名、ホームページのURLなどを設定できます。

Sdk02

Installでは「MSI File Name」をデフォルトのままではなく、適切なファイル名に変更してください。ここではeBox3300.msiというファイル名にしました。

Sdk03

CPU Familiesでは選択できるCPUのチェックボックスが現れるはずです。しかし一般にサポートしているCPUは一種類でしょうから、確認くらいで特に何もする必要はありません。

Sdk04

Development Languagesでは表示する言語を選択すわけではありません。ここではNative CodeとManaged Codeについての設定となります。Native Codeは当然標準のサポートですが、「Platform specific macro」の欄には、SDK用の環境変数を設定することができます。Managed Codeでは、.NET Compact Frameworkをカタログに取り込んでいる場合のみ、サポートするかどうかを選択できます。

Sdk05

必要な項目をすべて入力し、「OK」をクリックすると、Solution ExplorerのSDKsの下には、作成したSDK(ここではeBox3300)が表示されていることが確認できます。

Sdk06

あとはこのSDKをビルドするだけですが、ビルドしたいSDKを右クリックして「Build」を選択するだけでビルドが始まります。いたって簡単です。

Sdk07

ビルド自体は特に問題なく終わるでしょうから、ビルドが終了したらもう一度SDKを右クリックして「Explore」を選択してみてください。ビルドしたSDKのフォルダがWindowsのエクスプローラーで開かれます。

Sdk08

このフォルダにある「MSI」というフォルダに目指すSDKがインストーラー形式のmsiファイルとして保存されています。いちいち探すよりかなり簡単なので、このプルダウンメニューから選択することをお勧めします。

Sdk09

そして今回作成したSDK、eBox3300.msiをダブルクリックすると、インストーラーが起動します。このあたり、よくできています。インストーラーにSDKの名前である「eBox3300」がきちんと反映されていることを確認してください。

Sdk10

インストーラーの途中で出てくるEULA(End-User License Agreement)はデフォルトのものも使用出来ますが、SDK作成時にファイルを指定することで、独自のものを埋め込むことも可能です。

Sdk11

SDKのインストールは、指示に従って進めばいいだけですので、特に迷うことはないでしょう。インストールが無事に終了すると、以下のダイアログが表示されてお終いです。

Sdk12

このようにSDKの作成とインストールは、その手順さえ知っていれば簡単な作業です。実はSDKはこの一連の作業よりも、開発現場での運用の方がより難しいと考えています。OSイメージの更新とSDKの更新はペアであるべきですが、どうしてもおろそかになりがちです。特にアプリケーションを外部委託するなど、開発現場が分散したときには、その管理・運用は面倒なものとなってきます。この件に関しては、開発の初期段階で、SDKの適用ルールを決め、全体でそのルールを守ることを徹底するようにしてください。

WEC7にアプリケーションデバッグ用のモジュールを組み込むには?

Windows Embedded Compact 7(WEC7)でアプリケーション開発をする場合、もちろんPlatform Builder 7でアプリケーションを開発することもあるでしょう。しかしVisual Studio 2008のプロジェクトでアプリケーションを開発し、OSイメージは提供されたものを使用することも多いと思います。その際にOSイメージとVisual Studio 2008をどのように接続するのかというと、ActiveSyncによる接続が一般的かと思います。

USB等の接続が出来ず(こういう場合も多いでしょう)、Ethernet経由での接続を行いたい場合はどうするのでしょうか?今日はその方法を書いている時間が無いので、とりあえず覚書程度に、必要なモジュールの所在だけ記載します。これらのCoreCon用のモジュールは、標準ではOSイメージに含まれていませんので、以下のフォルダーのファイルを$(_FLATRELEASEDIR)以下にコピーして、リンクする必要があります。

C:¥Program Files¥Common Files¥Microsoft Shared¥CoreCon¥1.0¥Target¥CPU¥

今日は、以上です。

VS2005でのターゲットデバイスとのTCP/IP接続

eVCを使った場合、開発するターゲットデバイスとホストPCとはActiveSyncやTCP/IPで接続してデバッグを行います。Visual Studio 2005では、これまでの Visual Studio .NET 2003のようなマネージドコードの開発だけではなく、ネイティブコード開発もサポートしています。ツールに関して使い慣れているかどうかはともかく、全体的には歓迎でしょう。

ところがVS2005ではeVCで実現できていたActiveSync無しでの接続が簡単にはできないようなのです。「ツール」-「オプション」でダイアログボックスを開き、「デバイスツール」-「デバイス」から「デバイス」を選択することでそのプロパティからブートストラップを確認してもActiveSyncしか出てきません。これはターゲットデバイスにActiveSync用I/Fを搭載することが必要だということになります。シリアル、IrDA、USB Functionということになるわけですが、実はこれはターゲットによっては大変な場合があります。

200609011

ちょっと困っていたわけですが、同じWindows CE関係の技術者の方から、Tech・Edでお会いしたときに教えてもらいました。詳細はこちらの記事に記載されていますので、興味のある方は読んでみてください。私も動作を確認してみます。

Visual Studio 2005でのCABファイル作成

Visual Studio 2005を用いて.NET Compact Frameworkで動作するアプリケーションを作成することが出来たら、インストール用のCABファイルを出力することになります。これはいろいろな手段がありますが、おそらくターゲットアプリケーションのソリューションでCABファイルプロジェクトを新規に作成する事が最も簡単かと思います。

060109-01 まずはアプリケーションを開発したソリューションを開いた状態で、「File」-「New」-「Project」を選択すると「New Project」ダイアログボックスが表示されます。その中のProject typesから「Other Project Types」を展開し、「Setup and Deployment」を選択してください。いくつかのテンプレートが表示されますので、その中から「Smart Device CAB Project」を選択し、下の「Solution」ではプルダウンメニューの中から「Add to Solution」を選ぶだけです。そして「OK」ボタンをクリックするとCABファイルプロジェクトが出来ています。

060109-02 ワークスペースの「File System」タブウィンドウを開くと、Application FolderとProgram Files Folderがあります。Application Folderを選択、右クリックして「Add」-「Project Output...」を選択します。この時「Add Project Output Group」ダイアログボックスが開きますので、「Primary output」を選択、「OK」ボタンをクリックしてください。Solution ExplorerにCABファイルのセットアッププロジェクトが追加されています。

この状態で「Build」-「Build CABソリューション名」を選択するとCABファイルのビルドが始まります。ここで出力されたCABファイルをターゲットデバイスにActiveSync等を用いてコピーし、実行するととりあえず作成したアプリケーションのインストールが出来ます。

VS2005/C#でのアプリケーション開発

W-ZERO3でのアプリケーション開発ですが、まずはC#を使ってプログラムの作成をしてみます。C#で作成したアプリケーションはマネージドコードとして生成されるため、ターゲットデバイスのCPUには依存しません。またC++で開発するよりも、その技術的な障壁は低いと言われています。

051231-01

さてVS2005を起動すると、右のような画面が起動します。この画面はWinCEだからということではなく、VS2005の一般の初期画面です。W- ZERO3を始めとするWinCEデバイス用のアプリケーションは、ここから「File」メニューから「Project...」を選択します。

すると次のスナップショットのようにプロジェクトの選択画面が表示されます。WinCEデバイスはこれらの中から次のProject Typeで選択することが出来ます。

051231-02

  • Visual Basic
  • Visual C#
  • Visual C++

それぞれのProject Typeを選択すると、WinCE用として「Smart Device」を選択することになります。Windows CE Deviceという項目はありませんので、注意が必要です。

今回の例ではC#を使用してアプリケーションを作成することを考えています。そこで「Visual C#」-「Smart Device」を展開すると、そこにはインストールされているSDKを見ることが出来ます。すでにWindows Mobile用のSDKがインストールされている場合、「Windows Mobile 5.0 Pocket PC」という項目があります。これを選択すると利用できるテンプレートが表示されます。

Windows Mobile 5.0ということなので、.NET Compact Framework 2.0でアプリケーションを動かすために「Device Application」を選択します。同じような名称で「Device Application (1.0)」という項目がありますが、これはWindows CE.net 4.2までの.NET Compact Framework 1.0 を使用する場合になります。サポートされている機能が異なりますので、どちらを利用するかはターゲットデバイスによって決定してください。

051231-03ここまで出来れば後はプロジェクト名を適当に付けることで、VS2005はテンプレートに従って新しいプロジェクトを新規作成してくれます。このあたりは非常に簡単で、いつも感心する流れです。そしてプロジェクトの作成が終わるとWindows Mobileデバイスの画面が最初に表示されます。あとは通常のC#アプリケーションを作るように「Tool Box」からコントロールを選んで、新規フォーム上にそのコントロールを配置するだけで、とりあえずの画面構成が出来てしまいます。

普段Platform Builderだけで開発を行っていると、こういう非常に簡便な手法でアプリケーションが出来ていく様を見ると、正直な話、非常に驚かされます。もっとも別の点で、その弊害もあるわけですが、ここでのテーマではないので、それは割愛します。

とりあえずTool Boxからボタンコントロールを選択し、フォーム上の適当な位置にDrug & Dropします。そしてボタンの名前「Text」には「終了」と入力してみましょう。このサンプルはボタンを押すと(クリックすると)終了するだけの非常に簡単なアプリケーションとします。またすでにインストールしてあるWindows Mobileのエミュレータが日本語対応であれば、日本語も表示することが出来ます。当然のことですがW-ZERO3は日本語版のWM5.0で構築されているため、日本語の表示は問題ありません。

051231-04コードを編集する時は、これまでのVisual Studioと同様、編集したいコントロールをダブルクリックするだけで、そのコントロールのコードが開きます。ここでそのコントロールに対する処理を記述します。ここはプログラミングの領域なので、飛ばしますが、今回のサンプルでは「終了」ボタンとなっています。そこでアプリケーションを終了するだけのコードを以下の様に追加してください(青字の部分)。

namespace CF_Sample_01
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

この処理により、ボタンがクリックされるとアプリケーションが終了するようになります。

コードを追加したらアプリケーションのビルドを行います。ビルドは「Build」メニューから「Build プロジェクト名」を選択すると実行されます。

さて作成されたアプリケーションはVS2005に付属のエミュレータでも動作しますが、せっかくなのでW-ZERO3でその動作を検証してみましょう。VS2005からターゲットデバイスと接続するためにはActiveSyncでの接続が必要です。デバッグを開始する前にW-ZERO3とホストPCの間でActiveSyncによる接続を確立しておきます。

051231-05ホストPCとW-ZERO3が接続された状態で、「Debug」メニューから「Start Debugging」を選択するとデバッグの開始です。ダウンロードのターゲットデバイスを選択するダイアログが表示されますので、「Windows Mobile 5.0 Pocket PC Device」を選択してください。エミュレータでデバッグを行う場合には、最適なエミュレータを選ぶことになります。デバッグはこれだけで開始されます。非常に簡単に接続しますので、ターゲットデバイス、すなわちW-ZERO3の画面上に作成したフォームが表示されることを見ることが出来ます。

051231-06実際にW-ZERO3に表示された「終了」ボタンをクリックすると、このアプリケーションはそのまま終了します。作成したコードが正しく動作していることを確認することが出来ます。またVS2005のソース上にブレークポイントを設定することで、任意の位置でプログラムのブレーク等、一般のデバッグが出来ることも確認してください。

なおこのスナップショットは「Remote Zoom In」を使用して、実際にW-ZERO3上に表示された画面をコピーしました。各種リモートツールも使えますので、デバッグではいろいろな場面で利用できます。特に「Remote Regisry Editor」を使用するとW-ZERO3のレジストリが丸見えです。Bluetoothのドライバの痕跡があったりして、なかなか興味深いです。

またActiveSyncで接続された状態で、「プログラムの追加と削除」を選択すると以下のアプリケーションがインストールされていることがわかります。

  • Microsoft .NET CF 2.0
  • Microsoft .NE CF 2.0 JA-String Resouce

すなわち今回作成したC#のアプリケーションを動かすために.NET Compact Framework 2.0がインストールされていることが確認できるわけです。

VS2005を使ってC#によるW-ZERO3用アプリケーション開発はこのように非常に簡単な手順で進めることが出来ます。問題は何を作るかということですが、こればかりはいつも悩むところですね。まぁ今年も最後ですので、年越し蕎麦でも食べながら考えることにでもして、今日はお終いにします。

Platform SDKのインストール

さて必要とするVS2005をインストールしたところから話が始まります。まずWinCEのアプリケーションを作ろうと考えた場合、どのプログラム言語を使うかという事の決定が必要です。VS2005では、これまでのVisual BASICとC#の他に、ネイティブコードを生成できるVisual C++も使用することが出来るようになりました。私的にはVC++のサポートは非常に嬉しいのですが、まずはC#でアプリケーションを作る準備を始めたいと思います。

さてその前の準備として、WinCEの開発を進めるためにはPlatform SDKのインストールが必要です。このPlatform SDKとは開発対象のOSイメージがサポートしているAPIの一覧で、これが正しくないと作成したアプリケーションが動作しないことがあります。例えばWindows Media Player関連のコンポーネントが含まれていないOSイメージ上で、Windows Media Playerに関する制御を行う事が出来ないということは理解しやすいと思います。もともとWinCEは自由にコンポーネントの追加/削除が出来ますので、そのOSイメージがサポートしているAPIの一覧であるPlatform SDKがアプリケーション開発には必要となります。

今は時期が時期だけにW-ZERO3をターゲットに考えますので、VS2005のインストール後にW-ZERO3用というかWindows Mobile 5.0用のSDKを入手しインストールすることから始まります。Windows Mobile 5.0用(日本語用)としてはWindows Mobile 5.0 Pocket PC SDKWindows Mobile 5.0 Emulator Image for Pocket PC -JPNをマイクロソフトのサイトからダウンロードしてインストールすることになります。エミュレータに関しては、リンクしたページを開くと各国語のエミュレータがダウンロードできるようになっています。その中から必要とする言語のエミュレータをダウンロードしてください。

これらのSDKをダウンロードしてインストールするとW-ZERO3のアプリケーション開発のスタート地点に立つことができます。

どのVisual Studio 2005を買うのか?

WinCE関連でのお話として、最近はWILLCOMからW-ZERO3というWindows Mobile 5.0を搭載したPHSが発売されたのがホットトピックスでしょう。12月9日からウィルコムストアで予約が行われたのですが、サーバーがとんでもないことになったのは一部で有名な話です。私もPCの前にへばりつくこと40時間、奇跡的に予約が出来、発売日の12月14日に入手しました。

さて久しぶりにWinCE機がコンシューマー市場で話題となっていますが、Windows Mobileを搭載したスマートフォントしてW-ZERO3上ではユーザーによるアプリケーション開発が可能です。これまでのPlatoform BuilderやeMbedded Visual C++、Visual Studio .NET 2003といった開発環境でも対応は可能ですが、新しく出荷されるVisual Studio 2005での開発環境も魅力的です。このVS2005はこれまでのVS2003でサポートされていた.NET Compact Flameworkに加え、CPU毎の実行形式(ネイティブコード)での出力も可能になります。C#、VB.netとC++による開発がサポートされるということもあり、歓迎される方も多いことでしょう。

ところがVS2005の製品ラインナップを見ても、たくさんの種類があって、結局どれを購入すべきかよくわかりません。マイクロソフトWebサイトを見ると、ざっとこれだけの数があります。

  • Visual Studio 2005 Team System
  • Visual Studio 2005 Professional Edition
  • Visual Studio 2005 Tools for Microsoft Office System
  • Visual Studio 2005 Standard Edition
  • Visual Studio 2005 Express Edition
  • Visual Source Safe 2005
  • Visual Studio 2005 with MSDN Subscription

とりあえず高いやつを買っておけという気もしますが、一般に買えそうなものでどれを買ったらWinCEのアプリケーション開発ができるかということを以下の表にまとめてみました。

  Express Standard Professional Tools for Office
開発言語
C#, VB
C++, J#  
プラットフォーム
Windows Application
Web Application
Windows CE /
Mobile Application
   
Office Application      
64bit Application      
SQL Server Application    

この表はやはりマイクロソフトのWebページからの引用ですので、より詳細な情報はマイクロソフトの案内をよく確認してください。この表からわかることは、WinCEのアプリケーションを開発するためにはStandardまたはProfessionalが必要だということです。なお、VS2005の日本語版はまだ発売されておらず、マイクロソフトの発表によると、2006年2月1日から実際に市販されるようです。