Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zur lLaufzeit Code kompilieren und zuweisen..... (https://www.delphipraxis.net/73171-zur-llaufzeit-code-kompilieren-und-zuweisen.html)

zwaem86 13. Jul 2006 09:02


Zur lLaufzeit Code kompilieren und zuweisen.....
 
Hi,

kann mir einer sagen wie man zur Laufzeit einen Codefetzen kompilieren kann und dann an ein Ereignis hängt.

Gibt es dafür vllt. 'ne Komponente..........(freeware natürlich)?

Grüße
zwaem

RavenIV 13. Jul 2006 09:20

Re: Zur lLaufzeit Code kompilieren und zuweisen.....
 
Könntest Du Deine Frage bitte ausführlicher formulieren?
ich habe da kein Wort verstanden...

richard_boderich 13. Jul 2006 09:25

Re: Zur lLaufzeit Code kompilieren und zuweisen.....
 
also das wird wohl nich ganz soeinfach werden. ich denke mal besser waere es die routine gleich in
assembler zu schreiben bzw. vorcompilierte codesteucke zu verwenden. als naechstes muesstest du den
code in den speicher laden, und vor der ausfuehrung den EIP auf die einsprungadresse deiner routine setzten. und da liegt der hase im feld begraben. ich weis naehmlich nicht ob es unter
NTx.x systemen so einfach machbar ist. (siehe getrennte speicherbereiche) dazu gibst andere experten. ich denk mal olli oder assarbad waeren da die richtigen ansprechpartner.

gruß richard

himitsu 13. Jul 2006 09:27

Re: Zur lLaufzeit Code kompilieren und zuweisen.....
 
Er möchte zur Laufzeit Code ausführbaren Code erzeugen und ausführen.

Schau mal nach den verschiedenen Mathearsern hier, da gibt es z.B. so'nen kompilierenden von DAX ... die machen sozusagen soetwas (wenn ich mich nicht irre)

arbu man 13. Jul 2006 09:31

Re: Zur lLaufzeit Code kompilieren und zuweisen.....
 
oder der JvInterpreter der JEDIs

kalmi01 13. Jul 2006 09:33

Re: Zur lLaufzeit Code kompilieren und zuweisen.....
 
oder DelphiWebScript

mgero 13. Jul 2006 19:47

Re: Zur lLaufzeit Code kompilieren und zuweisen.....
 
oder Pascal Script von remobjects

Gruss,

Marco

Dax 13. Jul 2006 20:10

Re: Zur lLaufzeit Code kompilieren und zuweisen.....
 
Zitat:

Zitat von mgero
oder Pascal Script von remobjects

Nein. Alle gelisteten Interpreter erzeugen (meines Wissens nach, hab mir nicht alle angesehen - DWS fehlt mir noch ;)) keinen Maschinencode. Sie interpretieren lediglich einen Pascal-Code, der ihnen zugeworfen wird. Dazu wandeln sie den Code in Bytecode um, der abgearbeitet wird - von ganz normalen Methoden. .NET macht das ähnlich, allerdings hängt dort hinter dem Bytecode ein JIT-Compiler, der wirklich Maschinencode erzeugt.
Das einzig Maschinencodige(^^) am ROPS zum Beispiel ist der Stackaufbau für Funktionsaufrufe. Allein deswegen kann man aus ROPS Funktionen aufrufen, die kein festgelegtes Parameterformat haben - man übergibt ROPS die Parameter und entsprechend baut der Interpreter den Stack auf.
Beim JvInterpreter zum Beispiel hat eine Funktion, die in den Interpreter geklinkt wird, einen Arrayparameter, in dem alle Parameter drin sind, die im Interpreter in die Funktion geworfen werden.

Ist jetzt zwar bisschen Eigenlob und Promotion, aber seis drum :mrgreen: : Hier im Forum suchenHAM mit dem Assembler-Plugin und der Hier im Forum suchenECQP erzeugen wirklich Maschinencode :)

lg, Dax

PS: haut mich bitte nicht, falls ich damit falsch liege, es ist schon ne Weile her, das ich mit die Interpreter angekuckt hab. Korrigieren ist viel netter ^^

GimbaR 13. Jul 2006 23:14

Re: Zur lLaufzeit Code kompilieren und zuweisen.....
 
Zitat:

Zitat von richard_boderich
...ich denk mal olli oder assarbad waeren da die richtigen ansprechpartner...

Sry, wenn ich jezz OT werde, aber sind Olli und Assarbad nicht ein und die selbe Person? :gruebel:
Jedenfalls dachte ich das immer...

kalmi01 14. Jul 2006 05:43

Re: Zur lLaufzeit Code kompilieren und zuweisen.....
 
Moin, moin,
Zitat:

Alle gelisteten Interpreter erzeugen (meines Wissens nach, hab mir nicht alle angesehen - DWS fehlt mir noch ) keinen Maschinencode. Sie interpretieren lediglich einen Pascal-Code, der ihnen zugeworfen wird
Ich habe mir den Code von DWS zwar nicht "reingezogen", da aber eine Schleife im DWS fast genauso schnell abläuft, wie als echte Funktion in Delphi, geh ich mal davon aus.
"Fast genauso schnell" heisst, Delphi-Speed + ein kleiner Offset fürs Kompilieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 Uhr.
Seite 1 von 2  1 2      

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