5

Linux の Mono でLuaInterfaceを使用しようとすると(Ubuntu 9.04 で Mono 2.0 を使用)、次の例外が発生します。

** (App.exe:8599): 警告 **: アセンブリ内のメソッド ':.DoDllLanguageSupportValidation ()'
「/home/ulrich/test/Debug/lua51.dll」にはネイティブ コードが含まれています。
このプラットフォームで Mono によって実行されます。
アセンブリは、C++/CLI を使用して作成された可能性があります。

この Web サイトによると、 LuaInterfaceは Mono で使用できます。MoMAもそう言っています。

lua51.dllMono と互換性があるように再コンパイルすることは可能ですか?

4

3 に答える 3

6

LuaInterface の古いバージョンは、純粋な P/Invoke ラッパーを使用します。これを使用できます。

私自身も含めて、代替案のいくつかの試みもあります。http://github.com/jsimmons/LuaSharp

于 2009-10-29T05:30:16.797 に答える
6

LuaInterface は純粋な C# のように見えますが、ネイティブ Lua ライブラリの Windows バージョンの混合モードC++/CLI 化バージョンを使用しており、.NET コードとネイティブ 32 ビット Windows コードが混在しています。Windows 以外のプラットフォーム用の C++/CLI コンパイラはないため、C++/CLI コードを移植/再コンパイルすることはできませんが、Win32 (またはおそらく Wine) 上の Mono では動作するはずです。

これを Mono で動作させる唯一の現実的な方法は、C++/CLI の代わりに P/Invokes を使用することです。その後、dllmapを使用して、Mono が lua51.dll への P/Invoke 呼び出しを解決しようとするときに、Linux の同等の liblua.so.5.1 にリダイレクトされるようにすることができます。

于 2009-10-07T21:44:42.193 に答える