![]() |
Delphi und Lua - Lua soll Variable zurückgeben
Ich habe angefangen ein kleines Programm zu schreiben, welches mit Lua skriptbar sein soll. Dabei möchte ich, dass von Delphi aus eine Lua Funktion (mit mehreren Parametern) aufgerufen wird und diese dann einen String zurückgibt.
lua_pushstring verwende ich auch um die Parameter zu übergeben usw. Nun kann man ja per lua_pushcfunction(luastate, funktion) lua_setglobal(luastate, 'funktionsname'); machen, das Lua eine Delphi Funktion aufruft. Wie kann man nun allerdings einstellen, das dies mit Parametern funktioniert, und wie, dass diese Funktion etwas auf der GUI macht? Klar, eine Funktion gibt etwas zurück, aber gibt diese Funktion das an das Lua Skript oder an die Prozedur in der das Lua Skript aufgerufen wurde zurück? |
Re: Delphi und Lua - Lua soll Variable zurückgeben
ich push das mal
|
Re: Delphi und Lua - Lua soll Variable zurückgeben
Wie kannst du denn in Lua eine Funktion aus einer DLL ausrufen?
Es ist wohl ein Aufruf an LoadLibrary und dann GetProcAddress nötig. GetProcAddresse liefert einen Zeiger auf die Einsprungsadresse. Wenn du weisst wie das in Lua geht, dann sollte es auch möglich sein, eine Funktion aus einer Delphi Anwendung aufzurufen. |
Re: Delphi und Lua - Lua soll Variable zurückgeben
Soweit ich mich erinnere - ist auch schon 1-2 LUA Versionen her wieder - ist es ja möglich Variablen, insbesondere Tabellen zwischen LUA und Host zu sharen, bzw. aus dem Host heraus diese auszulesen. Also wäre ein einfacher Workaround statt Funktionsparameter Werte einer Tabelle zu setzen, und die betreffende Delphi-Funktion liest sich diese dann wieder aus. Anhand dieser Werte kannst du dann ja lustig in deiner GUI wurschteln :), aber direkt per Aufruf aus LUA wird das nichts. Du musst dir das schon in Delphi-Funktionen wrappen die letztlich auf die Objekte im Host zugreifen.
Das könntest du dir dann auch nochmals in eine kleine LUA-Lib wrappen, die LUA Funktionen mit Parametern entgegen nimmt, und dann transparent diese Tabellen versorgt und den Aufruf weiterleitet. Ich kann mir vorstellen, dass es evtl. wirklich einen "direkteren" Weg geben könnte, aber so ginge es auch. |
Re: Delphi und Lua - Lua soll Variable zurückgeben
Es muss auf jeden Fall einen direkteren Weg geben. Nur welcher dieser ist...
Ich will ja nicht nur dass Lua die GUI verändert, sondern man mit Lua direkt auf ein Ereignis reagieren kann. Z.b. eine IRC Nachricht kommt an, wird an Lua gesendet, per Lua kann man Skripten wie man auf sie reagiert , die Reaktion wird an Delphi zurück gegeben und von da aus zurückgesendet. Mit der ersten Methode würde es daher nicht gehen, da ich die Variablen ja ständig auslesen müsste und somit ziemlich viel altes Zeugs senden würde. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz