第二十章 调用Callout Library函数 - 使用 $ZF(-6) 按用户索引访问库

本文主要是介绍第二十章 调用Callout Library函数 - 使用 $ZF(-6) 按用户索引访问库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 第二十章 调用Callout Library函数 - 使用 $ZF(-6) 按用户索引访问库
  • 使用 `$ZF(-6)` 按用户索引访问库
      • 使用 `$ZF(-4,5)` 定义系统索引条目
      • 使用 `$ZF(-6)` 调用函数

第二十章 调用Callout Library函数 - 使用 $ZF(-6) 按用户索引访问库

使用 $ZF(-6) 按用户索引访问库

$ZF(-6) 函数提供了一个有效的接口,允许通过全局定义的索引访问 Callout 库,甚至可以由不知道共享库文件位置的应用程序使用。用户自定义索引表存储由库ID号和对应的库文件名组成的键值对。重命名或重新定位库文件时,可以更改与给定库 ID 关联的文件名。此更改对于按索引号加载库的应用程序来说是透明的。提供其他 $ZF 函数来创建和维护索引表,以及卸载 $ZF(-6) 加载的库。

本节讨论以下 $ZF 函数:

  • $ZF(-6) — 从用户指定的索引号引用的标注库中调用函数。如果尚未加载,则自动加载库。
  • $ZF(-4,4) — 卸载由索引号指定的标注库。
  • $ZF(-4,5)$ZF(-4,6) — 创建或删除系统索引表中的条目。系统索引对 IRIS 实例中的所有进程Global可用。.
  • $ZF(-4,7)$ZF(-4,8) — 创建或删除进程索引表中的条目。进程表在系统表之前被搜索,因此可以在进程中使用它们来覆盖系统范围的定义。

$ZF(-6) 接口与 $ZF(-5) 使用的接口类似(请参阅“使用 $ZF(-5) 通过系统 ID 访问库”),但有以下区别:

  • 在使用 $ZF(-6) 之前,必须创建库索引表。库索引值是用户定义的,可以在运行时更改或覆盖。
  • 库名称存储在索引中,索引不必由加载库的应用程序定义。可以在索引中更改库文件的名称和位置,而不会影响通过索引值加载库的依赖应用程序。
  • 没有单独的 $ZF 函数来加载库。相反,库由调用其函数之一的第一个 $ZF(-6) 调用自动加载。
  • 假设开发人员已经知道库函数 ID(由它们在 ZFEntry 表中的顺序确定),因此没有 $ZF 函数会返回给定名称和库索引值的函数 ID

以下示例演示了如何使用 $ZF(-6) 接口。第一个示例在系统索引表中定义了库 ID,第二个示例(可以从不同的应用程序调用)使用库 ID 来调用库函数:

使用 $ZF(-4,5) 定义系统索引条目

此示例将 100 设置为系统索引表中 mylibrary.dll 的库 ID。如果该编号已存在定义,则会将其删除并替换。

   set LibID = 100set status=$ZF(-4,4,LibID) // unload any existing library with this ID valueset status = $ZF(-4,5,LibID,"C:\calloutlibs\mylibrary.dll")  // set system ID
  • LibID是开发者选择的索引号。它可以是任何大于零的整数,保留的系统值 10242047 除外。
  • 如果已加载索引号为 100 的库,则应在替换条目之前卸载该库。
  • $ZF(-4,5) 的调用将索引号 100 与库文件 mylibrary.dll 相关联。

一旦在系统索引表中定义了库 ID,它就可供 IRIS 当前实例中的所有进程Global使用。

使用 $ZF(-6) 调用函数

本示例使用上一示例中创建的系统索引表。它使用 $ZF(-6) 加载库并调用库函数,然后卸载库。不必从在系统索引中定义库 ID 的同一应用程序调用此代码:

   set LibID = 100   // library ID in system index tableset FuncID = 2    // second function in library ZFEntry tableset x = $ZF(-6,LibID, FuncID, "arg1")   // call function 2set status = $ZF(-4,4,LibID)            // unload the library
  • LibID 是系统索引中定义的库 ID。该应用程序不必知道库名称或路径即可使用库函数。
  • FuncID 是库 LibIDZFEntry 表中列出的第二个函数的函数标识符。假设开发人员可以访问库代码 - (-6) 接口没有通过指定库函数名称来检索此数字的函数。
  • $ZF(-6) 的调用指定 100 作为库 ID2 作为函数 ID“arg1”作为传递给函数的参数。如果尚未加载,此调用将加载 Calloutmylibrary.dll,并将调用 ZFEntry 表中列出的第二个函数。
  • $ZF(-4,4) 的调用会卸载该库。由 $ZF(-6) 加载的每个库都将保持驻留,直到进程结束或由 $ZF(-4,4) 卸载。

这篇关于第二十章 调用Callout Library函数 - 使用 $ZF(-6) 按用户索引访问库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/594278

相关文章

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

C#中Guid类使用小结

《C#中Guid类使用小结》本文主要介绍了C#中Guid类用于生成和操作128位的唯一标识符,用于数据库主键及分布式系统,支持通过NewGuid、Parse等方法生成,感兴趣的可以了解一下... 目录前言一、什么是 Guid二、生成 Guid1. 使用 Guid.NewGuid() 方法2. 从字符串创建

Python使用python-can实现合并BLF文件

《Python使用python-can实现合并BLF文件》python-can库是Python生态中专注于CAN总线通信与数据处理的强大工具,本文将使用python-can为BLF文件合并提供高效灵活... 目录一、python-can 库:CAN 数据处理的利器二、BLF 文件合并核心代码解析1. 基础合

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.