本文主要是介绍第二十章 调用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
是开发者选择的索引号。它可以是任何大于零的整数,保留的系统值1024
到2047
除外。- 如果已加载索引号为
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
是库LibID
的ZFEntry
表中列出的第二个函数的函数标识符。假设开发人员可以访问库代码 -(-6)
接口没有通过指定库函数名称来检索此数字的函数。- 对
$ZF(-6)
的调用指定100
作为库ID
,2
作为函数ID
,“arg1”
作为传递给函数的参数。如果尚未加载,此调用将加载Callout
库mylibrary.dll
,并将调用ZFEntry
表中列出的第二个函数。 - 对
$ZF(-4,4)
的调用会卸载该库。由$ZF(-6)
加载的每个库都将保持驻留,直到进程结束或由$ZF(-4,4)
卸载。
这篇关于第二十章 调用Callout Library函数 - 使用 $ZF(-6) 按用户索引访问库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!