最終更新日 2024-09-25

mrubyエンジンのcp932化の手順

概要

ここではmrubyをScenarioModに組み込む上では避けて通れない、
mrubyのcp932対応や、必要な措置について記載しています。

mrubyとは

mruby は、まつもとゆきひろ氏が中心となって開発しているRubyを、組み込み向けに軽量・小型化した言語です。

RubyとLuaは誕生時期がほぼ同時期でですが、
LuaがC言語アプリケーションの組み込み用途として設計され、数多く採用されているに対し、
Rubyは、Perlの代用やRuby on Rails を切っ掛けとしてWeb方面へと花開きました。
mrubyとは、そのようなrubyの応用範囲を広げるべく、組み込み用途向けに仕立て直したものです。

しかし、この分野のでLuaの優位性はかなり高く、2015年現在、mrubyを採用するプロダクトは未だ数は少ないです。
ですが、元々Rubyの使い手であれば、導入は一考に値するでしょう。

ダウンロード

更新日 2016/01/22
mruby-master-cp932-1.1.0.01.zip

これらダウンロード対象となるソースは、mrubyをcp932(≒sjis)に対応したバージョン一式である。
この章の内容を理解する上で参考にしてください。

cp932に対応させる必要性

天翔記本体は、cp932で構成されており、各種データも全てcp932である。
そして、ScenarioModもcp932であり、ModDebuggerもcp932である。
以上から、mrubyをScenarioModで使う上においては、mruby本体のレベルからcp932にある程度は対応する必要がある。

mrubyコンパイルのための前準備

ここに記載されている情報は、mruby v1.1.0 2014/11/19版でのものとなる
mrubyのバージョンアップに伴い、コンパイルの仕方やファイル構成等が変更になっている可能性が高いことを踏まえた上で記事を読んで欲しい。

mrubyのcp932対応

コンパイル出来ない場合

コンパイルできない場合、大抵「Cの関数」が、「VC++に無い」というだけです。

ほとんどの場合は、エラーが出る該当の関数をWEBで検索すれば対処方法がわかります。
大抵は、「関数名の先頭にアンダーバー」を付けて、「何らかのヘッダーを追加すれば」
同様の関数が存在するのでコンパイルが通ります。

その他

cp932化した状態でコンパイルさえできてしまえば、後は通常のmrubyと変わるものではありません。
普通にScenarioModやShiftJis系アプリに組み込めますので、
mrubyの使い方などをWebで調べていけば、問題なく使えるはずです。