Как использовать LuaInterface на Mono / Linux - PullRequest
5 голосов
/ 07 октября 2009

Когда я пытаюсь использовать LuaInterface в Mono в Linux (используя Mono 2.0 в Ubuntu 9.04), я получаю следующее исключение:

** (App.exe:8599): WARNING **: Method ':.DoDllLanguageSupportValidation ()' in assembly 
'/home/ulrich/test/Debug/lua51.dll' contains native code that cannot 
be executed by Mono on this platform. 
The assembly was probably created using C++/CLI.

Согласно этот веб-сайт LuaInterface может использоваться с Mono. МоМА тоже так говорит.

Можно ли перекомпилировать lua51.dll, чтобы сделать его совместимым с Mono?

Ответы [ 3 ]

6 голосов
/ 29 октября 2009

В старых версиях LuaInterface используется чистая оболочка P / Invoke. Вы могли бы использовать это.

Есть также несколько попыток альтернатив, включая мою собственную. http://github.com/jsimmons/LuaSharp

6 голосов
/ 08 октября 2009

LuaInterface выглядит как чистый C #, но использует смешанный режим C ++ / CLI-версию версии Windows для собственной библиотеки Lua, которая смешивает код .NEt и собственный 32-битный код Windows , Нет компилятора C ++ / CLI для платформ, отличных от Windows, поэтому вы не можете портировать / перекомпилировать код C ++ / CLI, хотя он должен работать на Mono на Win32 (или, может быть, Wine) ..

Единственный действительно жизнеспособный способ заставить это работать на Mono - это заставить его использовать P / Invokes вместо C ++ / CLI. Затем можно использовать dllmap , чтобы при попытке Mono разрешить вызовы P / Invoke для lua51.dll он перенаправляется на эквивалент Linux, liblua.so.5.1.

0 голосов
/ 27 января 2014

Для всех, кто читает это сейчас: Используйте KopiLuaInterface ! Смотрите мой пост здесь: https://stackoverflow.com/a/21386450/1070906

...