Difference between revisions of "LoadFunctionFromBuffer"
1>Admin |
m (1 revision imported) |
(No difference)
| |
Latest revision as of 10:38, 18 November 2022
| 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);