最終回 実際にC++/CXでWindowsランタイム・コンポーネントを作成する:連載:Windowsランタイム・コンポーネントによるコードの再利用(3/3 ページ)
mrubyというオープンソースの組み込み用プログラミング言語コアを組み込んだWindowsランタイム・コンポーネントをC++/CXを使って実際に作ってみよう。
Windowsランタイム・コンポーネントの参照
作成したWindowsランタイム・コンポーネントをWindowsストア・アプリで利用するには、生成された.winmdファイルを参照設定する。
このとき、最も簡単な方法は、開発するWindowsストア・アプリのソリューションの中にWindowsランタイム・コンポーネントのプロジェクトを含める方法だ。この場合、ソリューション・エクスプローラで[参照設定]を右クリックしてコンテキストメニューから[参照の追加]を選択し、[参照マネージャー]の[ソリューション]から該当プロジェクトを選択するだけでよい。
そうでなく、異なるソリューションとして開発した場合は、[参照マネージャー]の[Windows]を選択して[参照]ボタンをクリックし、[参照するファイルの選択]ダイアログで直接、.winmdファイルを選択しなければならない。なお、.winmdファイルには、ネーム・スペース名がファイルの先頭に付加される(以下の図ではネーム・スペースとして「ArtoMuse」が設定されている)ので、プロジェクト名でファイルを探すと見つからなくて最初は戸惑うかもしれない。
Windowsランタイム・コンポーネントのプロジェクトでは、生成されたコンポーネントの作成場所が、ほかのVisual Studioプロジェクトと異なる。通常は、プロジェクト・ディレクトリ直下のbinディレクトリの下にコンポーネントが生成されるが、Windowsランタイム・コンポーネントの場合、プロジェクトと同一レベルのディレクトリのReleaseまたはDebugディレクトリ内のプロジェクトと同名ディレクトリ内に配置される。
まとめ
本記事では、具体例としてmrubyというオープンソースの組み込み用プログラミング言語コアをWindowsランタイム・コンポーネント化する方法を示した。
C++/CXで開発するWindowsランタイム・コンポーネントは、Windowsランタイム固有の各種制約を持つにも関わらず、既存のCおよびC++のライブラリやソース・ファイルの再利用という点からは、よく考えられたABIを持つ。想像するに、Windowsストア・アプリという新たなマーケットに開発者を招くには、既存のプログラム資産の活用しやすさが重要という想定があるのだろう。フラットUIやタッチパネル・インターフェイスといった面が強調されるWindowsストア・アプリであるが、Windowsランタイム・コンポーネントという再利用技術について、この記事が読者の皆さんの理解の助けになれば幸いである。
Copyright© Digital Advantage Corp. All Rights Reserved.