
? CRIPT repräsentiert eine hoch entwickelte? Nutzen Sie den kompakten, aber sehr vielseitigen Tinycc -Compiler und integriert nahtlos die dynamische Backend -Codegenerierung in die Delphi -Entwicklungsumgebung. Mit ? Cript können Delphi -Entwickler kompilieren und ausführen? Skripte zur Laufzeit, direkt in? Speicher und erzeugen Ausgabe in Form von? Win64 Executables (.exe), Dynamic-Link-Bibliotheken (.dll) oder Objektdateien (.obj).
.dll , .a und .lib -Dateien. ? CRIPT verwendet Tinycc , was statisch mit der Delphi -Laufzeit verknüpft ist, um zu kompilieren und auszuführen? Code dynamisch. Alles kritisch? Die Laufzeit-I/A-Operationen-wie open , close , read und lseek -werden zu Delphi-nativen Implementierungen umgeleitet. In der Regel müssen TinyCC -Laufzeitdateien separat verfügbar sein. In ? Cript werden diese Dateien jedoch in der ausführbaren Delphi selbst als komprimierte Ressourcen gespeichert, was zu einem? Selbst zusammenhängendes virtualisiertes E/A-Modell. Wenn Tinycc zu Zugriff auf Laufzeitdateien fordert, überprüft ein benutzerdefiniertes Delphi -E/A -Handler das eingebettete Zip -Archiv und stellt so eine nahtlose, effiziente und isolierte Ausführungsumgebung sicher.
? CRIPT fungiert als Kanal, um die Fähigkeiten des Codes im Delphi -Entwicklungsrahmen zu nutzen. Egal, ob es darum geht, bestimmte Vorgänge für die Verbesserung der Leistung zu optimieren, die mit bereits bestehende Vernetzung mit bereits bestehendem Vorgang zu haben? Bibliotheken oder erweitert die Funktion von Delphi mit den ausdrucksstarken Funktionen von?, ? CRIPT bietet ein zusammenhängendes und ausgefeiltes Entwicklungs -Toolset.
TCScript ist die primäre Schnittstelle für die Beschäftigung mit CRIPT -Funktionen. Unten finden Sie einen Überblick über seine Kernkomponenten:
csMEMORY : Skripte kompilieren und ausführen, die vollständig im Speicher sind.csLib : Objektdateien generieren ( .obj ).csEXE : generieren a? Win64 ausführbar.csDLL : generieren a? dynamische Linkbibliothek. csCONSOLE : Ziele? Konsolenanwendungs -Subsysteme.csGUI : Ziele? Grafische Benutzeroberfläche Subsysteme. constructor Create() : Initialisiert eine Instanz von TCScript .destructor Destroy() :? Veröffentlicht Ressourcen, die an die TCScript -Instanz gebunden sind.procedure SetErrorHandler(const ASender: Pointer; const AHandler: TCScriptErrorEvent) : Weisen Sie einen benutzerdefinierten Fehlerhandler für die Fehlerverwaltung zu.procedure GetErrorHandler(var ASender: Pointer; var AHandler: TCScriptErrorEvent) : Ruft den aktuell zugewiesenen Fehlerbehandler ab.function AddLibraryPath(const APath: string): Boolean : registers a? Bibliothekspfad für den Compiler.function AddIncludePath(const APath: string): Boolean : Register einen Include -Pfad zum Auffinden von Header -Dateien.function SetOutputType(const AOutputType: TCScriptOutputType): Boolean : Gibt den gewünschten Ausgangstyp für die Skriptkompilierung an.function CompileString(const ABuffer: string): Boolean : Kompiliert eine bereitgestellte Zeichenfolge von? Code.function AddFile(const AFilename: string): Boolean : fügt a? Quelldatei zur Kompilierungseinheit.function Run(): Boolean : führt das kompilierte Skript aus.function AddLibrary(const AName: string): Boolean : Fügt eine externe Bibliothek hinzu, die während der Ausführung dynamisch verknüpft ist.procedure AddSymbol(const AName: string; AValue: Pointer) : Registriert ein Symbol für den Skriptkontext.function GetSymbol(const AName: string): Pointer : Ruft die Adresse eines registrierten Symbols ab.procedure Reset() : Setzt die TCScript -Instanz zurück und löscht frühere Zustände.function SaveOutputFile(const AFilename: string): Boolean : Speichert die kompilierte Ausgabe in einem angegebenen? Datei.Das folgende Beispiel zeigt, wie TCScript instanziiert, eine Datei zur Kompilierung hinzugefügt und das resultierende Skript ausgeführt wird:
procedure CScriptErrorEvent ( const ASender: Pointer; const AText: string);
begin
WriteLn(AText);
end ;
procedure AddFileRun ();
var
LCScript: TCScript;
begin
LCScript := TCScript.Create();
try
// Set the ️ error handler
LCScript.SetErrorHandler( nil , CScriptErrorEvent);
// Configure the output type for in-memory execution
LCScript.SetOutputType(csMEMORY);
// Add include and library paths
LCScript.AddIncludePath( ' res/include ' );
LCScript.AddLibraryPath( ' res/lib ' );
// Add the ? source file to the scripting engine
LCScript.AddFile( ' res/src/test01.c ' );
// Execute the compiled script
if not LCScript.Run() then
WriteLn( ' Failed to execute script. ' );
finally
// Release resources
LCScript.Free();
end ;
end ;Um in Ihr Delphi -Projekt zu integrieren?
src -Ordner zum Delphi -Suchpfad hinzu.??cript dem Verwendungsbereich Ihres Projekts hinzu .Beiträge zu ? Cript sind sehr gefördert. Bitte zögern Sie nicht, Probleme einzureichen, neue Funktionen vorzuschlagen oder Pull -Anfragen zu erstellen, um die Funktionen und Robustheit der Skriptmotor zu erweitern.
? Cript ist unter dem verteilt? BSD-3-Klausel-Lizenz. Weitere Informationen finden Sie in der LICENSE .
Egal, ob Sie versuchen, die Rechenleistung zu verbessern, und nehmen Sie nahtlos mit vorhanden? Bibliotheken, oder erweitern die Funktionen Ihrer Delphi -Anwendungen,? CRIPT bietet eine leistungsstarke, integrierte Lösung für die Kombination der Stärken von Delphi und "99 Programmierung.
? Schalte neue Möglichkeiten mit ? Cript und erhöhen Sie Ihre Delphi -Entwicklungserfahrung durch Hybridprogrammierungstechniken.

Hergestellt mit ❤️ in Delphi