
?? Cript mewakili mesin skrip yang canggih? Memanfaatkan kompiler TinyCC yang ringkas namun sangat fleksibel, ?? Cript dengan mulus mengintegrasikan pembuatan kode backend dinamis ke dalam lingkungan pengembangan Delphi. Dengan ?? Cript , pengembang Delphi dapat mengkompilasi dan mengeksekusi? skrip saat runtime, langsung? memori, dan menghasilkan output dalam bentuk? Win64 Executables (.exe), pustaka tautan dinamis (.dll), atau file objek (.obj).
.dll , .a , dan .lib . ?? Cript mempekerjakan TinyCC , mana yang secara statis dihubungkan dengan runtime Delphi, untuk dikompilasi dan dieksekusi? kode secara dinamis. Semua kritis? Operasi I/O Runtime-seperti open , close , read , dan lseek -dialihkan kembali ke implementasi asli Delphi. Biasanya, TinyCC akan membutuhkan file runtime untuk tersedia secara terpisah; Namun, di cript , file -file ini disimpan dalam Delphi yang dapat dieksekusi sendiri sebagai sumber daya terkompresi, menghasilkan? Model I/O virtualisasi mandiri. Ketika Tinycc meminta akses ke file runtime, penangan I/O Delphi khusus memeriksa arsip zip tertanam, sehingga memastikan lingkungan eksekusi yang mulus, efisien, dan terisolasi.
?? Cript berfungsi sebagai saluran untuk memanfaatkan kemampuan? 99 kode dalam kerangka pengembangan Delphi. Apakah itu melibatkan mengoptimalkan operasi tertentu untuk ⚡ kinerja yang ditingkatkan, berinteraksi dengan yang sudah ada sebelumnya? Perpustakaan, atau menambah set fitur Delphi dengan kemampuan ekspresif ?, ?? Cript menyediakan toolset pengembangan yang kohesif dan canggih.
TCScript adalah antarmuka utama untuk terlibat dengan fungsi ?? cript . Di bawah ini adalah ikhtisar komponen intinya:
csMEMORY : Kompilasi dan jalankan skrip sepenuhnya dalam memori.csLib : Hasilkan file objek ( .obj ).csEXE : menghasilkan A? Win64 dapat dieksekusi.csDLL : menghasilkan a? Perpustakaan Dinamis-Link. csCONSOLE : Target? Subsistem Aplikasi Konsol.csGUI : Target? Subsistem Antarmuka Pengguna Grafis. constructor Create() : Menginisialisasi instance dari TCScript .destructor Destroy() :? Merilis sumber daya yang terkait dengan instance TCScript .procedure SetErrorHandler(const ASender: Pointer; const AHandler: TCScriptErrorEvent) : Menetapkan penangan kesalahan khusus untuk manajemen kesalahan.procedure GetErrorHandler(var ASender: Pointer; var AHandler: TCScriptErrorEvent) : mengambil penangan kesalahan yang saat ini ditugaskan.function AddLibraryPath(const APath: string): Boolean : register a? jalur perpustakaan untuk kompiler.function AddIncludePath(const APath: string): Boolean : register jalur termasuk untuk menemukan file header.function SetOutputType(const AOutputType: TCScriptOutputType): Boolean : Menentukan tipe output yang diinginkan untuk kompilasi skrip.function CompileString(const ABuffer: string): Boolean : mengkompilasi string yang disediakan? kode.function AddFile(const AFilename: string): Boolean : menambahkan a? Sumber file ke unit kompilasi.function Run(): Boolean : Menjalankan skrip yang dikompilasi.function AddLibrary(const AName: string): Boolean : menambahkan pustaka eksternal untuk ditautkan secara dinamis selama eksekusi.procedure AddSymbol(const AName: string; AValue: Pointer) : mendaftarkan simbol ke konteks skrip.function GetSymbol(const AName: string): Pointer : mengambil alamat simbol terdaftar.procedure Reset() : Menyesuaikan kembali instance TCScript , membersihkan status sebelumnya.function SaveOutputFile(const AFilename: string): Boolean : menyimpan output yang dikompilasi ke yang ditentukan? mengajukan.Contoh berikut menggambarkan cara membuat instantiate tcscript , menambahkan file untuk kompilasi, dan menjalankan skrip yang dihasilkan:
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 ;Untuk mengintegrasikan ?? Cript ke dalam proyek Delphi Anda:
src ke jalur pencarian Delphi.??cript ke bagian Penggunaan Proyek Anda .Kontribusi untuk ?? Cript sangat dianjurkan. Jangan ragu untuk mengirimkan masalah, menyarankan fitur baru, atau membuat permintaan tarik untuk memperluas kemampuan dan ketahanan mesin skrip.
?? Cript didistribusikan di bawah? Lisensi BSD-3-Clause. Untuk detail lebih lanjut, lihat file LICENSE .
Apakah Anda berusaha untuk ⚡ meningkatkan kinerja komputasi, antarmuka secara mulus dengan yang ada? perpustakaan, atau memperluas fitur aplikasi Delphi Anda, ?? Cript memberikan solusi yang kuat dan terintegrasi untuk menggabungkan kekuatan pemrograman Delphi dan? 99.
? Buka kunci kemungkinan baru dengan ?? Cript dan meningkatkan pengalaman pengembangan Delphi Anda melalui teknik pemrograman hybrid.

Dibuat dengan ❤️ di Delphi