Lua Logo
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.

nach obenEine Art Lua in C# einzubinden.
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"thisthis.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



nach obenCode komplett:
    
    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"thisthis.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