D3 Reference Manual

Index | Help

Поиск по страницам

Разделы / Общие сведения / user exits

user exits

Вызов системных функций

Позволяют напрямую обращаться к ассемблерным программам.

unumber
u$mode.name
u?mode.name

"Пользовательские точки выхода" или "пользовательские моды" (user exits) позволяют прямо обращаться к ассемблерным программам, называемым "модами". Как правило, в новых приложениях они не нужны и предоставляются, в основном, для совместимости с более старыми версиями системы и специальных утилит, которым необходим доступ к внутренним структурам.

Синтаксис "unumber" - это стандартный способ вызова пользовательских мод. Список имеющихся пользовательских мод содержится в атрибуте "see.also".

Пользователи с ассемблерными счетами могут также вводить через эти точки свой собственный код. Стандартным синтаксисом для этого является "u$mode.name". Он позволяет перейти прямо в моду, заданную параметром "mode.name". Каждый вызов пользовательской моды этого типа требует просмотра области "abs".

Пользователь может сначала использовать синтаксис "u?mode.name" и запомнить результат в переменной FlashBASIC. Пользовательская мода в этом случае выполнена НЕ будет, но будет возвращен прямой указатель ее местоположения. После этого моду можно вызывать повторно, используя значение переменной в качестве конверсии. Этот синтаксис значительно быстрее синтаксиса "u$mode.name", т.к. не требует никакого дальнейшего просмотра области "abs". Если возвращаемый указатель равен нулю, это значит, что мода не обнаружена.

Числовой пользовательский выход, который не найден в таблице пользовательских выходов, преобразуется в вызов BASIC-подпрограммы с именем "U" с последующим номером (например, "u123"). Если функция system(0) выполняется в начале данной подпрограммы, она возвращает 1 для вызова iconv() и 0 - для oconv().