
크립트는 경험이 풍부한 경험이 풍부한 세련된 스크립팅 엔진을 나타냅니다. 작고 다재다능한 TinyCC 컴파일러를 활용하면 동적 백엔드 코드 생성을 델파이 개발 환경에 원활 하게 통합합니다. 크립트 와 함께 델파이 개발자는 컴파일하고 실행할 수 있습니까? 런타임에 직접 스크립트? 메모리, 그리고 형태로 출력을 생성합니까? Win64 ExecutAbles (.Exe), 동적 링크 라이브러리 (.dll) 또는 객체 파일 (.OBJ).
.dll , .a 및 .lib 파일을 포함한 컴파일 된 모듈과로드 및 상호 작용할 수 있습니다. Cript는 TinyCC를 사용하여 델파이 런타임에 정적으로 연결되어 컴파일하고 실행합니까? 동적으로 코드. 모두 비판적입니까? 런타임 I/O 운영 ( open , close , read 및 lseek )은 Delphi-Native 구현에 다시 출연합니다. 일반적으로 TinyCC는 런타임 파일을 별도로 사용할 수 있어야합니다. 그러나 Cript 에서이 파일은 델파이 실행 파일 자체 내에 압축 자원으로 저장되어 A를 초래합니까? 자체 포함 가상화 된 I/O 모델. TinYCC가 런타임 파일에 대한 액세스를 요청하면 사용자 정의 Delphi I/O 핸들러는 임베디드 Zip 아카이브를 확인하여 원활하고 효율적이며 고립 된 실행 환경을 보장합니다.
크립은 델파이 개발 프레임 워크 내에서? 99 코드의 기능을 활용하기위한 도관으로 기능합니다. 성능 향상을 위해 특정 작업을 최적화하고 기존과의 인터페이스를 포함하는지 여부는? 도서관, 또는 델파이 기능 세트의 표현 능력으로 ?
tcscript 는 크립 기능에 참여하기위한 기본 인터페이스입니다. 아래는 핵심 구성 요소에 대한 개요입니다.
csMEMORY : 스크립트를 메모리에서 완전히 컴파일하고 실행합니다.csLib : 객체 파일을 생성 ( .obj ).csEXE : a? Win64 실행 파일.csDLL : a? 동적 링크 라이브러리. 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 : registers 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 : 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 ;델파이 프로젝트에 크립트를 통합하려면 :
src 폴더를 델파이 검색 경로에 추가하십시오 .??cript 추가하십시오 .크립 에 대한 기여는 적극 권장됩니다. 스크립팅 엔진의 기능과 견고성을 확장하기 위해 문제를 제출하거나 새로운 기능을 제안하거나 풀 요청을 작성하십시오.
크립이 배포되어 있습니까? BSD-3-Clause 라이센스. 자세한 내용은 LICENSE 파일을 참조하십시오.
계산 성능을 향상 시키려고하든 기존과 완벽하게 인터페이스하든? 라이브러리 또는 델파이 애플리케이션의 기능을 확장하거나 크립트는 델파이와? 99 프로그래밍의 강점을 결합한 강력하고 통합 된 솔루션을 제공합니다.
? 크립트 로 새로운 가능성을 잠금 해제하고 하이브리드 프로그래밍 기술을 통해 델파이 개발 경험을 높이십시오.

델파이에서 ❤️로 제작되었습니다