Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

16.4: Lua-Funktionen aufrufen

Uploader:Redakteurnemored
Datum/Zeit:24.08.2013 16:52:00
Hinweis: Dieser Quelltext ist Bestandteil des Projekts OpenBook: 2D-Spieleprogrammierung, zu dem es auf FreeBASIC-Portal.de eine Projektseite gibt.

' *** CODE 16.4: Lua-Funktionen aufrufen

' **********************
' * FreeBASIC-Programm *
' **********************
#include once "Lua/lua.bi"
#include once "Lua/lauxlib.bi"
#include once "Lua/lualib.bi"

' Lua bereitstellen
dim Lua as lua_State ptr
dim as integer m = 27, n = 36
Lua = luaL_newstate
luaL_openlibs(Lua)

' Skript laden
if luaL_loadfile(Lua, "ggt.lua") orelse lua_pcall(Lua, 0, 0, 0) then
  print "Fehler: " & *lua_tostring(Lua, -1)
  end
end if

' Funktion vorbereiten und aufrufen
lua_getglobal(Lua, "ggT")
lua_pushnumber(Lua, m)
lua_pushnumber(Lua, n)
if lua_pcall(Lua, 2, 1, 0) then
  print "Skriptfehler: " & *lua_tostring(Lua, -1)
  end
end if
print "Der ggT von " & m & " und " & n & " ist ";
print lua_tonumber(Lua, -1) & "."
getkey



' **********************
' *     Lua-Script     *
' **********************
function ggT(n, m)
  q = math.floor(n/m)
  r = n - m * q
  if r==0 then return m else return ggT(m,r) end
end