AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Lua und Delphi (Teil 1)

Lua und Delphi (Teil 1)

Ein Tutorial von igel457 · begonnen am 8. Sep 2006 · letzter Beitrag vom 21. Okt 2010
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von igel457
igel457
Registriert seit: 31. Aug 2005
Lua und Delphi
Funktionen von Delphi nach Lua

Hallo,

Ich habe mal ein kleines Tutorial geschrieben, in dem es um die Verwendung von Lua mit Delphi geht.
In diesem Teil geht es darum, Lua mit Delphi zu verbinden und Delphi Funktionen aus Lua heraus aufzurufen.

[edit=JasonDX] *snip* - Link auf Wunsch des Autors entfernt, das Tutorial befindet sich nun im Anhang[/edit]

Um Rückmeldung wäre ich euch sehr verbunden, da es mein erstes Tutorial ist.

In den nächsten Teilen wird es darum gehen Lua Funktionen aus Delphi heraus aufzurufen und Objekte zwischen Lua und Delphi auszutauschen.

Viel Spaß damit wünscht euch,
Igel457

PS: Mehr Infos über Lua gibt es unter http://www.lua.org
Angehängte Dateien
Dateityp: zip lua_tutorial_658.zip (125,4 KB, 535x aufgerufen)
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
 
Benutzerbild von mschaefer
mschaefer

 
Delphi XE3 Enterprise
 
#2
  Alt 8. Sep 2006, 22:58
Moin, Spätmoin,

Scriptsprachen in Delphi sind ein interessantes Thema. Dein Tutorial finde ich gut gemacht.
Kenne Lua nun überhaupt nicht. Richtig spannend finde ich wird es, wenn ich ein Memo mit dem Programm habe und dies dann ändern und laufen lassen kann. Vielleicht könntest Du ein Demoprojekt mit Source in den Anhang stellen. Ein großer Vorteil scheint hier doch zu sein, dass nicht mit ActiveX-Komponenten, sondern nur mit einer dll, die im Anwendungsverzeichnis liegt, gearbeitet wird. Und wenn man die dynamisch lädt, kann man auch noch ihre relative Lage zur Exe bestimmen.

Find ich gut! Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#3
  Alt 9. Sep 2006, 11:52
Zitat von mschaefer:
Moin, Spätmoin,

Scriptsprachen in Delphi sind ein interessantes Thema. Dein Tutorial finde ich gut gemacht.
Kenne Lua nun überhaupt nicht. Richtig spannend finde ich wird es, wenn ich ein Memo mit dem Programm habe und dies dann ändern und laufen lassen kann. Vielleicht könntest Du ein Demoprojekt mit Source in den Anhang stellen. Ein großer Vorteil scheint hier doch zu sein, dass nicht mit ActiveX-Komponenten, sondern nur mit einer dll, die im Anwendungsverzeichnis liegt, gearbeitet wird. Und wenn man die dynamisch lädt, kann man auch noch ihre relative Lage zur Exe bestimmen.

Find ich gut! Grüße // Martin
Danke für die Rückmeldung! Die Beispielprogramme werde ich noch hochladen, das ist kein Problem.
Das mit dem Memo ist vieleicht auch git für ein Beispiel mit Objekten, mal schaun ob ich das hinkriege.

Igel457
Andreas
  Mit Zitat antworten Zitat
Vasco da Gama

 
Delphi 2009 Professional
 
#4
  Alt 8. Sep 2009, 14:11
Hallo Delphi Experten!
Ich weiß, dass dieses Thema 3 Jahre alt ist, habe aber trotzdem Fragen:

1.: Teil 1? Gibt es davon auch einen 2. Teil?

2.: Ich habe den ersten Teil des Tutorials ausprobiert und kam damit zu folgendem Code:
Delphi-Quellcode:
program LuaTest;

{$APPTYPE CONSOLE}

uses
  SysUtils, Lua;

var Lua_Instance:Lua_State;

begin
  Lua_Instance := Lua_Open();
  LuaOpen_Base(Lua_Instance);
  Lua_DoFile(Lua_Instance, 'helloworld.lua');
  ReadLn;
  Lua_Close(Lua_Instance);
  Lua_Instance := nil;
end.
Damit spuckt er aber nicht das gewünschte Ergebnis aus, sondern:

Zitat:
cannot read h: No such file or directory
Kennt jemand diesen 'Fehler'/ dieses Problem oder gar die Lösung?

mfG und Danke
Flo
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
 
#5
  Alt 8. Sep 2009, 14:25
Ich kenn mich mit Lua nicht aus, vermute aber mal, dass

  Lua_DoFile(Lua_Instance, 'helloworld.lua'); die fehlerhafte Zeile ist. Schonmal mitm kompletten Pfad versucht?
米斯蘭迪爾
  Mit Zitat antworten Zitat
Andreas L.
 
#6
  Alt 8. Sep 2009, 14:26
Vielleicht muss hier ein absoluter Pfad angegeben werden:
Lua_DoFile(Lua_Instance, 'helloworld.lua');
  Mit Zitat antworten Zitat
Vasco da Gama

 
Delphi 2009 Professional
 
#7
  Alt 8. Sep 2009, 14:28
Hi, ja hab ich grade versucht, dann bekomm ich bei
  Lua_DoFile(Lua_Instance, 'C:\Users\Florian\Documents\RAD Studio\Projekte\LuaTest\helloworld.lua');
Zitat:
cannot read C: No such file or directory
Trotzdem danke für die Antworten
Flo
  Mit Zitat antworten Zitat
Klaus01

 
Delphi 10.4 Sydney
 
#8
  Alt 8. Sep 2009, 14:34
.. sind (String) Konstanten in Delphi 2009 auch uniCode?
Könnte da das Problem liegen?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Vasco da Gama

 
Delphi 2009 Professional
 
#9
  Alt 8. Sep 2009, 14:35
Das weiß ich jetzt spontan nicht, doch diese Variable ist eine PWideChar, also kein String.
Flo
  Mit Zitat antworten Zitat
Chris.R

 
Delphi 2010 Professional
 
#10
  Alt 8. Sep 2009, 14:47
In den Deklarationen für die Dll ist bestimmt PChar als Parametertyp definiert, was vor Delphi 2009 PAnsiChar entsprochen hat, unter Delphi 2009 (und höher) aber PWideChar ist.
Einfach mal in der Unit in der die Funktion definiert ist, PChar durch PAnsiChar ersetzten.

Die Meldung "cannot read C: No such file or directory" kommt daher, da das erste Zeichen "C" ist, gefolgt von einem 0 Byte, da UTF-16. Und nach dem Nullbyte ist für die
Dll-Funktion der String zu Ende.
  Mit Zitat antworten Zitat
Themen-Optionen Tutorial durchsuchen
Tutorial durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz