「NeoLua」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | + | '''NeoLua'''とは、[[オープンソース]]の下で[[開発]]されている[[.NET Framework]]向けの[[Lua]]実装である。 | |
+ | |||
+ | == 概要 == | ||
+ | [[.NET Framework]]向けの[[Lua]]実装は多数存在するが、それらは本家Luaの[[DLL]]を[[P/Invoke]]で呼び出すものが多い。 | ||
+ | |||
+ | 一方、NeoLuaは[[CLR]]でのピュア実装となっている。 | ||
+ | つまり[[IronPython]]などと同じ系列である。 | ||
+ | 表向きの名前はNeoLuaであるが、内部的な名前空間は「Neo.IronLua」となっており、やはり「Iron〜」である。 | ||
+ | NeoLuaは[[Portable Class Library]]([[PCL]])環境でも何も考えずに一発で動くように作られている点がポイント高い。[[Xamarin]]系、[[MonoGame]]系では大活躍である。 | ||
+ | |||
+ | NeoLuaは「純正Lua」ではなく「Lua互換品」となるため互換性の心配があるがNeoLuaの公式サイトでは「100%」を謳っている。 | ||
+ | ほんとかどうかは知らん。 | ||
+ | 互換性に問題があるようであれば[[NLua]]あたりを使ったほうがいいかもしれないが、NeoLuaの方が積極的にメンテナンスされており活況ではある。 | ||
+ | |||
+ | == 使い方 == | ||
+ | === インストール === | ||
+ | * NuGetからNeoLuaを入れろ。 | ||
+ | * 参照に「Microsoft.CSharp」を追加しろ。 ← これ忘れがち | ||
+ | |||
+ | === ハロワ === | ||
+ | dochunkは小文字だぞ。 | ||
+ | dynamic変数にしておくとLua内のオブジェクトに直接手出しすることができる。 | ||
+ | <source lang="csharp"> | ||
+ | using (var lua = new Lua()) | ||
+ | { | ||
+ | dynamic g = lua.CreateEnvironment(); | ||
+ | g.dochunk("s = 'hello world';","test"); | ||
+ | Console.WriteLine(g.s); | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | こういう書き方もできる。 | ||
+ | 「clr」で標準の名前空間にもアクセスできる。 | ||
+ | <source lang="csharp"> | ||
+ | using (var lua = new Lua()) | ||
+ | { | ||
+ | dynamic g = lua.CreateEnvironment(); | ||
+ | g.dochunk(@" | ||
+ | s = 'hello world'; | ||
+ | clr.System.Console.WriteLine(s); | ||
+ | "); | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | == 関連項目 == | ||
+ | |||
+ | == 外部リンク == | ||
+ | * https://neolua.codeplex.com | ||
+ | * https://github.com/neolithos/neolua | ||
+ | |||
+ | == 参考文献 == | ||
+ | {{reflist}} | ||
+ | |||
+ | {{stub}} | ||
+ | |||
+ | [category: Lua] |