(これは2013-04-25に書いた故OCNブログの記事を加筆修正したものです)
Windows 8上で動作する、Windowsストア アプリ(WinRTアプリ)でスクリプト言語Lua 5.2とそのC++バインダーであるLuabind 0.9を使う方法です。
そもそも公式の Luabind 0.9.1 はLua 5.2.x系列に対応してなくて、さらに最新版の Lua 5.2.2 もそのままではストア アプリ向けにビルドすることはできないんですが、わずかな修正(と制限)を加えるだけで一応動作するようになりました。何をどう変えたのか、は各自調べてください。
ちなみに、「Lua@空想具現化プログラミング」さんにてLuaをANSIマルチバイト エンコード(Shift_JIS)に対応させる方法が紹介されていますが、せっかくMSがストア アプリでANSIマルチバイト サポートを捨てたのですから、Shift_JISなどという産業廃棄物にも劣る旧世紀の遺物を今更使うのはもうやめておきましょう*1。ちなみにLua for WindowsでUTF-8/UTF-16にどうやって対応するか、は上記ストア アプリのサンプル コードを読めば一目瞭然です*2。
下記はLuaストア アプリのサンプルのスクリーンショットです。単純なので使い方もなんとなく分かっていただけると思います。ビルド手順などの詳しい説明はGitHubリポジトリを参照してください。
コードの二次利用は自由ですが、Boost, Lua, Luabindそれぞれのライセンスに従ってください。また、コードの利用は自己責任でお願いします。仮に損害が発生したとしても、当方は一切の責任を負いません。
なお、とるに足らないテスト用アプリではありますが、コレをこのままストアに提出することは絶対にやめてください。コレはあくまでサンプル コードです。そのまま提出してもたぶん審査で落ちるだけだと思いますが、もしコレをベースにして似たようなアプリを作成する場合、必ず何らかの独自機能をきちんと付加した上で、Package.appxmanifestのPublisherとPublisherDisplayNameをきちんと更新してください。この約束が守られていないアプリを発見した場合、しかるべきところに通報させていただきます。
ちなみにコードを二次利用する際、Lua, Luabindはクレジット表記する必要があったと思います(MITライセンス)。
余談:Windowsストア アプリと外部スクリプト
Windowsストア アプリでは、実行時にスクリプトを動的に差し替えるようなことはポリシー上できません。その代わり、すべてのスクリプトをパッケージに含める形であれば配布可能です。スクリプト言語をWindowsストア アプリで使用する、というのは、あくまで開発効率を高めるためのひとつの手段(あるいはデスクトップ版アプリとの開発基盤共通化目的での使用のみ)だと思ってください。例えばユーザーがインターネット経由でダウンロードした外部スクリプトを使い、アプリの動作までをも変更・拡張できるようなMODやプラグインのためには使用できない、ということです。ストア アプリは制約が厳しすぎて、クリエイティブ系のツール開発プラットフォームにはまったく向いていません。
※2017-04-01追記:
GitHubに移管した際、LuabindをLua 5.3.4, Boost C++ 1.63.0に対応させましたが、Luabindは相変わらず公式の更新が止まっています。現在はSeleneやSol/Sol v2といった後発のバインダーも出ているようなので、Luabindにこだわる必要もないでしょう。
※2020-12-27追記:
Lua 5.4.2に対応させました。Lua 5.2で追加されたビット演算ライブラリ bit32 はLua 5.3でdeprecatedとなり、Lua 5.4で完全廃止されています。
※2022-03-21追記:
2021-06-28の改訂により、Microsoftストアに公開されたアプリでも、ユーザーの同意を得たうえであれば、「製品の機能を強化するアドオンまたは拡張機能」を後から追加取得できるようになったようです。
10.1.5 を更新し、特定の追加の製品、アドオン、または拡張機能が製品内から使用できるようになりました。