Lua Logo
Hallo world mit Lua

Für die, die Lua nicht nur für ihr Spiel brauchen, werde ich einige Arten der Einbindung von Lua in C vorstellen.

Die einfachste Art Lua in C einzubinden.

Bibliotheken einbinden
    
    #pragma comment(lib, "lib/lua")
    #pragma comment(lib, "lib/lualib")
    
Die Header - Dateien
    
    extern "C"
    {
        #include "include/lua.h"
        #include "include/lualib.h"
        #include "include/lauxlib.h"
    }
    
Instanz erzeugen.
    
    lua_State* L;
    
    int main(int argc, char* argv[])
    {
    
Lua öffnen.
    
        L = lua_open();
    
Benötigte Bibliotheken öffnen. Für das Hallo brauchen wir nur die Basis-Bibliothek und die IO-Bibliothek.
        
        luaopen_base(L);
    // luaopen_string(L);
    // luaopen_table(L);
    // luaopen_math(L);
    // luaopen_debug(L);
        luaopen_io(L);
    
Lua-File ausführen
        
        lua_dofile(L, "mein.lua");
    
Lua wieder schließen.
        
        lua_close(L);
    
Fertig
        
        return 0;
    }
    

In der Datei mein.lua steht:
    
    print("Hallo von Lua")
    

Die libaries und header kann man hier herunter laden.

Sie sind in 7-zip gepackt. Z.Zt. besste Kompressionsrate.

Wer nichts zum öffnen hat: 7-Zip

Und so sollte es dann aussehen



Code komplett:
    
    #pragma comment(lib, "lib/lua")
    #pragma comment(lib, "lib/lualib")
    
    extern "C"
    {
        #include "include/lua.h"
        #include "include/lualib.h"
        #include "include/lauxlib.h"
    }
    
    lua_State* L;
    
    int main(int argc, char* argv[])
    {
        L=lua_open();
    
        luaopen_base(L);
    // luaopen_string(L);
    // luaopen_table(L);
    // luaopen_math(L);
    // luaopen_debug(L);
        luaopen_io(L);
    
        lua_dofile(L, "mein.lua");
    
        lua_close(L);
        return 0;
    }
    
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