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以外での)画面描画はできないんです。

image

ですので、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++で開発をされてきた方はこの辺りはご注意ください。