
?? criptは、経験豊富な開発者向けに細心の注意を払って作られた洗練された?99スクリプトエンジンを表しています。コンパクトでありながら非常に用途の広いTinyCCコンパイラを活用する?? Criptは、ダイナミックバックエンドコードの生成をシームレスにDelphi開発環境に統合します。 ?? criptを使用して、Delphiの開発者はコンパイルして実行できますか?ランタイムのスクリプト、直接?メモリ、およびの形で出力を生成しますか? win64実行可能ファイル(.exe)、動的リンクライブラリ(.dll)、またはオブジェクトファイル(.obj)。
.dll 、 .a 、および.libファイルを含むコンパイルされたモジュールをロードして対話できます。?? Criptは、Delphiランタイムに静的にリンクされているTinyCCを使用して、コンパイルして実行するために採用しています。動的にコード。すべて重要ですか?ランタイムI/O操作は、 open 、 close 、 read 、 lseekなど、Delphi-Nativeの実装に再ルーティングされます。通常、TinyCCでは、ランタイムファイルを個別に利用できるようにする必要があります。ただし、 ?? Criptでは、これらのファイルはDelphi実行可能ファイル自体に圧縮リソースとして保存されているため、?自己完結型仮想I/Oモデル。 TinyCCがランタイムファイルへのアクセスを要求すると、カスタムDelphi I/Oハンドラーが埋め込みZIPアーカイブをチェックし、それによりシームレスで効率的で孤立した実行環境を確保します。
?? criptは、 Delphi開発フレームワーク内で?99コードの機能を活用するための導管として機能します。パフォーマンスを向上させ、既存の存在とインターフェシングのために特定の操作を最適化するかどうか?ライブラリ、または?、 ?? criptの表現力のある機能を使用してDelphiの機能セットを増強することは、まとまりのある洗練された開発ツールセットを提供します。
TCScriptは、 ?? CRIPT機能に関与するための主要なインターフェイスです。以下は、コアコンポーネントの概要です。
csMEMORY :完全にメモリでスクリプトをコンパイルして実行します。csLib :Object Files( .obj )を生成します。csEXE :生成しますか? Win64実行可能ファイル。csDLL :生成しますか?ダイナミックリンクライブラリ。 csCONSOLE :ターゲット?コンソールアプリケーションサブシステム。csGUI :ターゲット?グラフィカルユーザーインターフェイスサブシステム。 constructor Create() : tcscriptのインスタンスを初期化します。destructor Destroy() :? TCScriptインスタンスに関連付けられたリソースをリリースします。procedure 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 :compille a redument string of?コード。function AddFile(const AFilename: string): Boolean :adds 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で❤️で作られています