Hallo world mit Lua für C#
Für die, die Lua nicht nur für ihr Spiel brauchen, werde ich einige Arten der Einbindung von Lua in C vorstellen.
In c# ist es besonders einfach Lua zu benutzen.
Interface einbinden
Zunächt eine Reference angeben:


using LuaInterface;
Eine Klasse, die Lua sofort öffnet
Geht auch anders, Wenn man gut C# kann wird man das besser wissen als ich. ;)
class MyLua:Lua
{
public MyLua()
{
//OpenBaseLib(); // brauchen wir hier nicht.
//OpenLoadLib();
//OpenStringLib();
//OpenMathLib();
//OpenIOLib();
//OpenTableLib();
RegisterFunction("Print", this, this.GetType().GetMethod("PrintVonLua")); C# - Funktion wird in Lua Registriert
}
public void PrintVonLua(string str) // Function zur Ausgabe
{
Console.WriteLine(str);
Console.ReadLine();
}
}
Instanz erzeugen.
static void Main(string[] args)
{
MyLua lua = new MyLua();
Zwei verschiedene Arten Hallo zu sagen:
lua.DoString("Print('Hallo von Lua DoString')");
lua.DoFile("mein.lua");
}
Komplettes Projekt kann man hier herunter laden.
Und so sollte es dann aussehen

using System;
using System.Collections.Generic;
using System.Text;
using LuaInterface;
namespace LuaHallo
{
class Program
{
static void Main(string[] args)
{
MyLua lua = new MyLua();
lua.DoString("Print('Hallo von Lua DoString')");
lua.DoFile("mein.lua");
}
}
class MyLua:Lua
{
public MyLua()
{
//OpenBaseLib();
//OpenLoadLib();
//OpenStringLib();
//OpenMathLib();
//OpenIOLib();
//OpenTableLib();
RegisterFunction("Print", this, this.GetType().GetMethod("PrintVonLua"));
}
public void PrintVonLua(string str)
{
Console.WriteLine(str);
Console.ReadLine();
}
}
}
Die Vervielfältigung der auf diesen Seiten enthaltenen Informationen und Grafiken ist untersagt, ausgenommen davon ist sämtlicher auf diesen Seiten angezeigter Quellcode.
Siehe auch: Haftungsausschluss
Copyright © Robert Schmitz 2006
Siehe auch: Haftungsausschluss
Copyright © Robert Schmitz 2006