WP8 プロジェクトにおけるC++の立ち位置について
#wpdev_jp
Windows Phone 8では新たにC++を使ったプロジェクトが増えており、また、以前からネイティブコードが使えるというはなしがありました。しかし、完全にすべてがネイティブコードで作れるわけではありません。
まず、Windows Phone 8 において UIを作って描画することができる技術は次の3つだけです。
- Direct3D:C++
- XNA:C#, VB
- XAML :XAML, C#, VB
つまり、唯一の例外である Direct3Dアプリケーションを除けば、Windows Phone のアプリケーションのベースはす全てC#かVBで描画部分は作らないといけません。C++を使って(D3D以外での)画面描画はできないんです。
ですので、C++を使って D3Dのゲーム以外の Windows Phone のアプリケーションを作ることはできないと思ったほうがよいでしょう。特定の機能を持ったDLLを作っることはできますが、アプリケーションのパッケージや描画部分は XAML アプリケーションであり C#/VB なのです。
Windows 8はXAML+C++のモデルがありましたが、Windows Phone にはそのモデルはありません。Windows Phone には XAML+Direct3Dというプロジェクトもありますが、これは既存のXNAと同じ構造で、C#/VBのXAMLアプリケーションの中にDirect3DのSurfaceを描画できるコントロールが配置してあるだけのアプリケーションです。アプリケーションとしては C#/VBのXAMLアプリケーションです。
くどいようですが、C++をつかえる場面はこの2つです。
- Direct3Dを使ったゲーム等の開発
- DLLの開発(利用は C#/VBのXAMLアプリケーション)
C++で開発をされてきた方はこの辺りはご注意ください。