/*!
  \page lua_from_cpp_page C++ からの Lua スクリプトの呼び出し

  C++ から Lua のファイル自体を実行する手順と、Lua 内の関数を呼び出す手順、Lua スクリプトを呼び出す方法を解説します。

  \section lua_from_cpp_file_section Lua スクリプトファイルの呼び出し

  <a href="http://svn.sourceforge.jp/view/trunk/libs/lua/samples/hello.lua?view=co&root=qrobosdk">hello.lua</a> を C++ プログラム中から呼び出してみましょう。

  <a href="http://svn.sourceforge.jp/view/trunk/libs/lua/samples/dofile.cpp?view=co&root=qrobosdk">dofile.cpp</a>
  \include dofile.cpp

  実行結果
  \verbatim
hello in lua
hello in C++ \endverbatim

  hello.lua にて print() を printf() などにしてエラーを発生させた場合の実行結果
  \verbatim
hello.lua:1: attempt to call global 'printf' (a nil value) \endverbatim

  簡単ですね。\n
  エラー処理がないと、Lua スクリプト内でエラーがおきたときに、何も表示されないので注意しましょう。

  \n
  \section lua_from_cpp_function_section Lua スクリプト内の関数の実行

  Lua スクリプト内の関数を呼び出す方法を示します。

  \subsection lua_from_cpp_function_luabind Luabind を利用する場合

  Luabind を用いて C++ から Lua スクリプト内の関数を呼び出す手順は、以下の通りです。

  - Lua スクリプトをロードしておく
  - C++ から luabind を用いて Lua スクリプト内の関数を呼び出す

  以下、サンプルプログラムです。\n
  <a href="http://svn.sourceforge.jp/view/trunk/libs/lua/samples/hello_function.lua?view=co&root=qrobosdk">hello_function.lua</a> 内の hello() を C++ から呼び出しています。詳細は <a href="http://www.rasterbar.com/products/luabind.html">Luabind のページ(英語)</a> をご覧ください。

  <a href="http://svn.sourceforge.jp/view/trunk/libs/lua/samples/callFunction.cpp?view=co&root=qrobosdk">callFunction.cpp</a>
  \include callFunction.cpp

  実行結果
  \verbatim
hello in lua \endverbatim

  読み出し済みの Lua スクリプト内に関数が存在しない場合の実行結果
  \verbatim
call_function: attempt to call a nil value \endverbatim

  簡単ですね。\n
  Luabind を用いるとコンパイルが遅くなるので、Lua スクリプトを呼び出す関数は専用のソースファイルにまとめて分割コンパイルしましょう。

  \n
  \section lua_from_cpp_string_section 指定文字列の実行

  Lua の関数を用いて C++ から直接 Lua スクリプトを呼び出します。

  <a href="http://svn.sourceforge.jp/view/trunk/libs/lua/samples/dostring.cpp?view=co&root=qrobosdk">dostring.cpp</a>
  \include dostring.cpp

  簡単ですね。\n
  ただ、頻繁に呼び出す箇所の実装では「処理時間の問題からこの関数を使わない方がよい」という意見もあります。必要に応じて処理時間を計測しておくことをお勧めします。

  \n
  \section lua_from_cpp_comment_section コメントページ

  - http://sourceforge.jp/forum/forum.php?forum_id=18515

  \n
  \section lua_from_cpp_reference_section 参考

  - Web ページ Luabind 本家 (英語) http://www.rasterbar.com/products/luabind.html
  - 本 <a href="http://www.amazon.co.jp/gp/product/4797348550?ie=UTF8&tag=qrobosdk-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4797348550">「スクリプト言語による効率的ゲーム開発 C/C++へのLua組込み実践」</a><img src="http://www.assoc-amazon.jp/e/ir?t=qrobosdk-22&l=as2&o=9&a=4797348550" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

  \n
*/
