Объектный тип БИБЛИОТЕКА_ПОСРЕДНИК
Физический объектный тип c передачей ответственности "справа налево".
Объектный тип БИБЛИОТЕКА_ПОСРЕДНИК предназначен для работы со специально разработанными промежуточными DLL.
Промежуточные DLL разрабатываются для конкретных сторонних компонентов по мере необходимости. Например, для программных компонентов, обеспечивающих работу с различным оборудованием.
Специальная технология создания промежуточных DLL позволяет работать с программным интерфейсом (API) стороннего компонента из языка И++. При этом прикладной программист ограждается от не нужных ему деталей.
Когда надо использовать
- Промежуточные DLL создаются, когда сторонний компонент имеет сложный и нестандартный программный интерфейс (API). Например, используются типы определенные пользователем (UDT), такие как структуры языка C или классы языка C++.
Когда использовать не надо
- Для программных интерфейсов (API), содержащих функции с параметрами простых типов можно использовать тип ДИНАМИЧЕСКАЯ_БИБЛИОТЕКА.
- Необходимость в промежуточной DLL также отсутствует, когда сторонний компонент использует технологию COM. Средства модуля MODCOM позволяют работать с интерфейсом IDispatch.
Методы
Метод | Описание |
---|---|
ОТКРЫТЬ | Загружает промежуточную DLL и делает доступным вызов других методов. |
ЗАКРЫТЬ | Выгружает промежуточную DLL. |
ПОСЛ_ОШИБКА | Возвращает текст и внутренний код ошибки последнего обращения к промежуточной DLL. |
ПОДГОТОВИТЬ | Выполняет подготовку к вызову указанной функции стороннего API. |
ОЧИСТИТЬ | Очищает буфер вызова функции и все временные значения. |
ЗАПИСАТЬ | Устанавливает значение перед вызовом стороннего API. |
СЧИТАТЬ | Получает значение после вызова стороннего API. |
ВЫЗВАТЬ | Выполняет вызов функции стороннего API. |
ВЫДЕЛИТЬ | Выделяет память для временного значения заданного типа. Требуется редко. |
РАЗМЕР | Вычисляет размер значения в байтах для заданного типа. Требуется редко. |
Для начала работы необходимо вызывать метод ОТКРЫТЬ с указанием имени или полного пути промежуточной DLL.
После открытия вызов стороннего API выполняется в следующем порядке.
- Вызов метода ПОДГОТОВКА с указанием имени функции стороннего API, которую собираемся вызывать. Промежуточная библиотека инициализирует буфер вызова (параметры, возвращаемое значение) для указанной функции.
- Установка значений входных параметров выполняется многократным вызовом метода ЗАПИСАТЬ. За один вызов ЗАПИСАТЬ можно установить только одно значение простого типа. На этом этапе также могут вызываться методы ВЫДЕЛИТЬ и РАЗМЕР, если того требует организация стороннего API. Все данные помещаются в буфер промежуточной DLL.
- Метод ВЫЗВАТЬ непосредственно выполняет вызов функции стороннего API. Входные параметры вызова берутся из буфера промежуточной DLL. Выходные параметры и возвращаемое значение помещаются в буфер промежуточной DLL.
- Получение значений выходных параметров и возвращаемого значения выполняется многократным вызовом метода СЧИТАТЬ. За один вызов СЧИТАТЬ можно получить только одно значение простого типа.
- Очистка буфера в промежуточной библиотеке вызовом метода ОЧИСТИТЬ.