AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Lua 'sauber' einbinden (DLL Injection)
Thema durchsuchen
Ansicht
Themen-Optionen

Lua 'sauber' einbinden (DLL Injection)

Ein Thema von Ijax · begonnen am 14. Sep 2014 · letzter Beitrag vom 15. Sep 2014
Antwort Antwort
Ijax

Registriert seit: 14. Sep 2014
4 Beiträge
 
Delphi XE3 Professional
 
#1

Lua 'sauber' einbinden (DLL Injection)

  Alt 14. Sep 2014, 04:08
Hallo,

folgendes Szenario:

Ich injiziere meine eigene DLL in einen anderen Prozess und stelle einige Lua-Befehle bereit.
Nun ist es so, dass ich die lua.dll immer nachladen muss, ebenfalls in den Prozess.

Ich möchte die DLL gerne so in mein Projekt einbinden das ich bestenfalls manuell keine externen Bibliotheken nachladen muss. Daher würde die Möglichkeit ausscheiden die DLL einfach als Ressource hinzuzufügen, darum das die DLL mit im Ordner liegt geht es indirekt zwar auch, aber ich möchte komplett vermeiden das die Lua Api ihre eigene DLL im Prozess hat, eben damit es ein wenig sauberer aussieht.

In C++ ist es einfach möglich. In Delphi über Umwege mithilfe von .obj Dateien wohl auch, gibt es da im Zusammenhang mit Lua vorgefertigte oder evtl. Erfahrungen? Ansonsten könnte ich mir vorstellen die Lua DLL manuell zu 'wrappen', der Speicher für die DLL wird von mir selber allokiert und der entsprechende Code hineingeschrieben. Der Code der Lua DLL liegt dann direkt in meiner DLL, entweder als Ressource, als Array oder was es da sonst noch so gibt.

Gibt es dazu sonst noch Vorschläge? Was haltet ihr von meiner Idee mit dem Wrapper?

Gruß

Geändert von Ijax (14. Sep 2014 um 04:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.349 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Lua 'sauber' einbinden (DLL Injection)

  Alt 14. Sep 2014, 06:57
Aber Lua muss es sein? Denn es gibt mit z.B. DWScript eine sehr schöne Pascal Script Implementierung, die nicht nur schneller ist als jede Lua Implementierung, die ich bisher gesehen habe, sondern auch direkt einkompiliert wird ohne externe DLLs.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Ijax

Registriert seit: 14. Sep 2014
4 Beiträge
 
Delphi XE3 Professional
 
#3

AW: Lua 'sauber' einbinden (DLL Injection)

  Alt 14. Sep 2014, 07:13
Da es eh ein privates Projekt ist und es sonst keinen interessiert, nein es muss kein Lua sein
Wie sich nach einigen Stunden herausgestellt hat ist Lua statisch einzubinden (c .obj) ein ziemlich großer Aufwand.

DWScript muss ich mir jetzt mal genauer ansehen, das kannte ich noch nicht, danke.
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#4

AW: Lua 'sauber' einbinden (DLL Injection)

  Alt 14. Sep 2014, 10:46
wenn's auch was zu bezahlendes sein darf:

http://tmssoftware.com/site/scriptstudiopro.asp
  Mit Zitat antworten Zitat
Ijax

Registriert seit: 14. Sep 2014
4 Beiträge
 
Delphi XE3 Professional
 
#5

AW: Lua 'sauber' einbinden (DLL Injection)

  Alt 14. Sep 2014, 22:15
Hi,

auch dir danke für die Antwort, zur Zeit schwanke ich zwischen dem PaxCompiler (habe ihn in der Vergangenheit bereits verwendet um msfastcall Funktionen leichter aufrufen zu können und sehr gute Erfahrung gemacht) und DWScript. DWScript wird soweit ich gesehen habe nur noch sehr notdürftig aktualisiert.
Mich würde dennoch interessieren ob es bereits jemanden gelungen ist Lua in Delphi statisch zu linken. Einen großen Teil der msvcrt Symbole aufzulösen ist kein Problem, bei dem Rest wird es schwieriger.

Geändert von Ijax (14. Sep 2014 um 22:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: Lua 'sauber' einbinden (DLL Injection)

  Alt 14. Sep 2014, 22:33
DWScript wird soweit ich gesehen habe nur noch sehr notdürftig aktualisiert.
Wat? Nein, da ist mehr Drive drin denn je, seit es als Compiler fürs Smart Mobile Studio dient.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#7

AW: Lua 'sauber' einbinden (DLL Injection)

  Alt 15. Sep 2014, 00:30
Einen großen Teil der msvcrt Symbole aufzulösen ist kein Problem, bei dem Rest wird es schwieriger.
Ja, gerade wenn es darum geht Klassen, Methoden und Interfaces zwischen der Host Anwendung und LUA zu sharen wird's kompliziert. Schade das Simon Steward sein LUA RAD aufgegeben hat. Das war als Beta schon ziemlich erwachsen. Er ist vermutlich daran gescheitert, das LUA sich schneller weiterentwickelt hat als er seine Wrapperklassen generieren konnte.
  Mit Zitat antworten Zitat
Ijax

Registriert seit: 14. Sep 2014
4 Beiträge
 
Delphi XE3 Professional
 
#8

AW: Lua 'sauber' einbinden (DLL Injection)

  Alt 15. Sep 2014, 01:23
DWScript wird soweit ich gesehen habe nur noch sehr notdürftig aktualisiert.
Wat? Nein, da ist mehr Drive drin denn je, seit es als Compiler fürs Smart Mobile Studio dient.
Dann muss ich mich an dieser Stelle entschuldigen, ich habe nicht wirklich lange recherchiert.
Einen großen Teil der msvcrt Symbole aufzulösen ist kein Problem, bei dem Rest wird es schwieriger.
Ja, gerade wenn es darum geht Klassen, Methoden und Interfaces zwischen der Host Anwendung und LUA zu sharen wird's kompliziert. Schade das Simon Steward sein LUA RAD aufgegeben hat. Das war als Beta schon ziemlich erwachsen. Er ist vermutlich daran gescheitert, das LUA sich schneller weiterentwickelt hat als er seine Wrapperklassen generieren konnte.
Gab es dazu etwas öffentliches wo man weiter dran rumdoktern könnte? Habe auf die schnelle nichts dazu gefunden.
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#9

AW: Lua 'sauber' einbinden (DLL Injection)

  Alt 15. Sep 2014, 07:03
Einen großen Teil der msvcrt Symbole aufzulösen ist kein Problem, bei dem Rest wird es schwieriger.
Ja, gerade wenn es darum geht Klassen, Methoden und Interfaces zwischen der Host Anwendung und LUA zu sharen wird's kompliziert. Schade das Simon Steward sein LUA RAD aufgegeben hat. Das war als Beta schon ziemlich erwachsen. Er ist vermutlich daran gescheitert, das LUA sich schneller weiterentwickelt hat als er seine Wrapperklassen generieren konnte.
Gab es dazu etwas öffentliches wo man weiter dran rumdoktern könnte? Habe auf die schnelle nichts dazu gefunden.
Ja, gab es. Er hat sich aber vollkommen unerreichbar per Mail, Blog und Website gemacht, weil er nicht mit dem Shitstorm fertig geworden ist, den seine Spendenaktion ausgelöst hat. Er hat 5000 Pfund Spenden eingefordert, damit sein er LUA RAD in absehbarer fertig entwickeln kann. Alle Spender über 50 Pfund haben dafür eine LUA RAD Professional Version versprochen bekommen. Naja, und nach dem sein Pfundsraiser die 5000 Pfund Marke überschritten hatte war von ihm wöchentlich weniger zu hören und versprochene Updates blieben aus. Habe auch 51 Pfund gespendet, daher bin ich hier recht gut informiert. Ein knappes Jahr nach dem versprochenen Termin kam dann noch eine Mail von ihm. Sinngemäß:"Pöhh, ihr schüttet mich alle mit unschönen Mails voll und sagt nicht wirklich nette Sachen zu mir. Ich vergrabe mich mit meiner Entwicklung im Keller und mache von außen erstmal dicht.". Das war Ende 2011. Ist wohl nicht mehr zu erwarten, dass er noch was liefert. Falls doch, dann verschenke ich meine Lizenz hier in der DP. Ich brauche keine LUA RAD Pro mehr.
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:25 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