
Cript แสดงให้เห็นถึงความซับซ้อน 99 เครื่องยนต์สคริปต์ที่สร้างขึ้นอย่างพิถีพิถันสำหรับผู้พัฒนาที่มีประสบการณ์? Delphi นักพัฒนา ใช้ประโยชน์จากคอมไพเลอร์ TinyCC ที่มีขนาดกะทัดรัด แต่มีความหลากหลายสูง Cript ได้รวมการสร้างรหัสแบ็กเอนด์แบบไดนามิกเข้ากับสภาพแวดล้อมการพัฒนา Delphi อย่างราบรื่น ด้วย Cript นักพัฒนา Delphi สามารถรวบรวมและดำเนินการได้หรือไม่? สคริปต์ที่รันไทม์โดยตรง? หน่วยความจำและสร้างผลลัพธ์ในรูปแบบของ? Win64 Executables (.EXE), Libraries Dynamic-Link (.DLL) หรือไฟล์วัตถุ (.OBJ)
.dll , .a และ .lib Cript ใช้ TinyCC ซึ่งมีการเชื่อมโยงแบบคงที่ในรันไทม์ Delphi เพื่อรวบรวมและดำเนินการ? รหัสแบบไดนามิก วิกฤตทั้งหมด? การดำเนินการ Runtime I/O-เช่น open close read และ lseek จะกำหนดเส้นทางใหม่ไปยังการใช้งาน Delphi-Native อีกครั้ง โดยทั่วไปแล้ว TinyCC จะต้องใช้ไฟล์รันไทม์แยกกัน อย่างไรก็ตามใน cript ไฟล์เหล่านี้จะถูกเก็บไว้ภายใน Delphi ที่เรียกใช้งานได้เองเป็นทรัพยากรที่ถูกบีบอัดส่งผลให้เกิด? โมเดล I/O เสมือนจริงที่อยู่ในตัวเอง เมื่อ TINYCC ร้องขอการเข้าถึงไฟล์รันไทม์ตัวจัดการ Delphi I/O ที่กำหนดเองตรวจสอบการเก็บถาวร ZIP แบบฝังตัวเพื่อให้มั่นใจว่าสภาพแวดล้อมการดำเนินการที่ไร้รอยต่อมีประสิทธิภาพและโดดเดี่ยว
Cript ทำหน้าที่เป็นท่อร้อยสายเพื่อควบคุมความสามารถของรหัส 99 รหัสภายในกรอบการพัฒนา Delphi ไม่ว่าจะเกี่ยวข้องกับการเพิ่มประสิทธิภาพการดำเนินงานเฉพาะสำหรับ⚡ประสิทธิภาพที่เพิ่มขึ้นหรือไม่การเชื่อมต่อกับที่มีอยู่ก่อน? ห้องสมุดหรือการเพิ่มคุณสมบัติของ Delphi ที่มีความสามารถในการแสดงออกของ?, cript?
TCScript เป็นอินเทอร์เฟซหลักสำหรับการมีส่วนร่วมกับ cript functionalities ด้านล่างนี้เป็นภาพรวมขององค์ประกอบหลัก:
csMEMORY : รวบรวมและเรียกใช้สคริปต์ทั้งหมดในหน่วยความจำcsLib : สร้างไฟล์วัตถุ ( .obj )csEXE : สร้าง a? Win64 ปฏิบัติการได้csDLL : สร้าง A? ไลบรารีลิงก์แบบไดนามิก csCONSOLE : เป้าหมาย? ระบบย่อยแอปพลิเคชันคอนโซลcsGUI : เป้าหมาย? ระบบย่อยส่วนติดต่อผู้ใช้กราฟิก constructor Create() : เริ่มต้นอินสแตนซ์ของ TCScriptdestructor Destroy() :? เผยแพร่ทรัพยากรที่เชื่อมโยงกับอินสแตนซ์ TCScriptprocedure SetErrorHandler(const ASender: Pointer; const AHandler: TCScriptErrorEvent) : กำหนดตัวจัดการข้อผิดพลาดที่กำหนดเองสำหรับการจัดการข้อผิดพลาดprocedure GetErrorHandler(var ASender: Pointer; var AHandler: TCScriptErrorEvent) : ดึงตัวจัดการข้อผิดพลาดที่กำหนดไว้ในปัจจุบันfunction AddLibraryPath(const APath: string): Boolean : ลงทะเบียน A? เส้นทางห้องสมุดสำหรับคอมไพเลอร์function AddIncludePath(const APath: string): Boolean : ลงทะเบียนเส้นทางรวมสำหรับการค้นหาไฟล์ส่วนหัวfunction SetOutputType(const AOutputType: TCScriptOutputType): Boolean : ระบุประเภทเอาต์พุตที่ต้องการสำหรับการรวบรวมสคริปต์function CompileString(const ABuffer: string): Boolean : รวบรวมสตริงที่ให้ไว้? รหัส.function AddFile(const AFilename: string): Boolean : เพิ่ม A? ไฟล์ต้นทางไปยังหน่วยรวบรวมfunction Run(): Boolean : เรียกใช้สคริปต์ที่รวบรวมfunction AddLibrary(const AName: string): Boolean : เพิ่มไลบรารีภายนอกที่จะเชื่อมโยงแบบไดนามิกระหว่างการดำเนินการprocedure AddSymbol(const AName: string; AValue: Pointer) : ลงทะเบียนสัญลักษณ์ไปยังบริบทสคริปต์function GetSymbol(const AName: string): Pointer : ดึงที่อยู่ของสัญลักษณ์ที่ลงทะเบียนprocedure Reset() : รีเซ็ตอินสแตนซ์ TCScript โดยล้างสถานะก่อนหน้าfunction SaveOutputFile(const AFilename: string): Boolean : บันทึกเอาต์พุตที่รวบรวมไว้เป็นที่ระบุ? ไฟล์.ตัวอย่างต่อไปนี้แสดงวิธีอินสแตนซ์ TCScript เพิ่มไฟล์สำหรับการรวบรวมและเรียกใช้สคริปต์ผลลัพธ์:
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 ;เพื่อรวม Cript เข้ากับโครงการ Delphi ของคุณ:
src ไปยังเส้นทางการค้นหา Delphi??cript ในส่วนการใช้งานโครงการของคุณการสนับสนุน Cript ได้รับการสนับสนุนอย่างสูง โปรดอย่าลังเลที่จะส่งปัญหาแนะนำคุณสมบัติใหม่หรือสร้างคำขอดึงเพื่อขยายความสามารถและความแข็งแกร่งของเอ็นจิ้นสคริปต์
Cript มีการแจกจ่ายภายใต้? ใบอนุญาต BSD-3-Clause สำหรับรายละเอียดเพิ่มเติมโปรดดูไฟล์ LICENSE
ไม่ว่าคุณจะพยายามที่จะเพิ่มประสิทธิภาพการคำนวณอินเทอร์เฟซกับที่มีอยู่อย่างราบรื่นหรือไม่? ห้องสมุดหรือขยายคุณสมบัติของแอปพลิเคชัน Delphi ของคุณ Cript เป็นโซลูชั่นที่ทรงพลังและบูรณาการสำหรับการรวมจุดแข็งของ Delphi และ 99 การเขียนโปรแกรม
- ปลดล็อกความเป็นไปได้ใหม่ด้วย Cript และยกระดับประสบการณ์การพัฒนา Delphi ของคุณผ่านเทคนิคการเขียนโปรแกรมไฮบริด

ทำด้วย❤ใน Delphi