LoadFunctionFromBuffer
Revision as of 13:06, 10 September 2022 by 1>Admin
LoadFunctionFromBuffer (Системные функции) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция производит импорт из памяти экспортированной ранее с помощью SaveFunctionToBuffer компилированной функции. Функция возвращает объект аналогичный результату функции Compile, который можно использовать многократно с функциями Exec и ExecEx.
Синтаксис
LoadFunctionFromBuffer(<Экспортированная в память компилированная функция (BUFFER, STRING)>,<Путь к исходному тексту (STRING),<Исходный текст (STRING)>):<Компилированная функция в виде объекта (COMPILEDFUNCTION)>
Аргументы
<Экспортированная в память компилированная функция (BUFFER, STRING)>
- Буфер с экспортированной в память функцией, либо ANSI строка, содержащая байты экспортированной функции.<Путь к исходному тексту (STRING)>
- (необязательный аргумент) Аргумент задает путь и название файла и указывает на исходный текст на диске (в формате sf), который будет загружен и показан в отладчике. Если этот или последующий аргументы не указаны, исходный текст не будет доступен в отладчике, что может быть неудобным при отладке ошибок.<Исходный текст (STRING)>
- (необязательный аргумент) Аргумент задает исходный текст, функция которого была загружена из буфера. Исходный текст будет загружен и показан в отладчике, если отладка будет производиться. Если этот или предыдущий аргументы не указаны, исходный текст не будет доступен в отладчике, что может быть неудобным при отладке ошибок. Обычно задается или путь к исходному тексту или сам исходный текст, задание и того и другого возможно, но будет всегда использован третий аргумент, как более приоритетный.
Возвращаемое значение
Возвращает новый объект компилированной функции, который можно исполнить с помощью функций Exec и ExecEx.
Примеры
//Стр -- текстовый блок с исходным текстом Стр:="Message(""Hello, world!"");"; aFunc:=Compile(Стр,1); aBuf:=SaveFunctionToBuffer(aFunc); aBuf.SaveToFile("c:\testfile.bin"); bBuf:=Buffer.Create(); bBuf.LoadFromFile("c:\testfile.bin"); bFunc:=LoadFunctionFromBuffer(bBuf); //В лог клиента будет выведено "Hello, world!" Exec(bFunc);