第八章 创建Callout Library - ZFentry 链接选项

2023-12-29 23:36

本文主要是介绍第八章 创建Callout Library - ZFentry 链接选项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 第八章 创建Callout Library - ZFentry 链接选项
  • `ZFentry` 链接选项
    • 链接简介

第八章 创建Callout Library - ZFentry 链接选项

ZFentry 链接选项

每个 ZFENTRY 语句都需要一个字符串来确定函数参数的传递方式。本节提供可用链接选项的详细说明。

  • 链接简介 — 概述了各种链接类型,并列出了本章讨论的所有链接选项。
  • 使用数字链接 — 描述数字参数的链接选项。
  • 使用 C 链接类型传递空终止字符串 — 描述空终止字符串的链接选项。
  • 使用 B 链接类型传递短计数字符串 — 描述使用 ZARRAY 结构进行计数字符数组的链接。
  • 使用 J 链接类型传递标准计数字符串 — 描述使用 IRIS IRIS_EXSTR 结构进行计数字符数组的链接。
  • 为传统短字符串配置 $ZF 堆 — 描述控制传统短字符串参数传递的内存分配的 IRIS 系统设置。

链接简介

每个 ZFENTRY 语句都需要一个描述如何传递参数的字符串。例如,“iP”指定两个参数:一个整数和一个指向整数的指针。第二个字母大写以指定第二个参数可用于输入和输出。代码最多可以有 32 个实际参数和形式参数。

如果指定大写链接类型(允许用于除 i 之外的所有链接类型),则该参数可用于输入和输出。如果仅指定一个输出参数,则其最终值将用作函数的返回值。如果指定了多个输出参数,则所有输出参数都将以逗号分隔的字符串形式返回。

输出参数不必用作输入参数。如果在所有输入参数之后指定仅输出参数,则可以在不指定任何输出参数的情况下调用该函数。

ObjectScript程序员的角度来看,参数只是输入。实际参数的值由 $ZF 调用计算并链接到 C 例程声明中的形式参数。对 C 形式参数的任何更改要么会丢失,要么可以复制到 $ZF 返回值。

如果 ZFENTRY 宏未指定用作返回值的形式参数,则 $ZF 调用将返回空字符串 ("")。链接声明可以包含多个输出参数。在这种情况下,所有返回值都将转换为单个逗号分隔的字符串。无法区分多个返回参数之间插入的逗号和任何一个返回值中存在的逗号,因此只有最终返回值才应包含逗号。

下表描述了可用选项:

C DatatypeInputIn/OutNotes
inti or 4inone (use P)指定 32 位整数。 i 链接类型仅用于输入。要返回整数类型,请使用 P4P (int *)。输入参数可以是数字字符串(参见注释 1)。
int *p or 4pP or 4P指向 32 位整数的指针。输入参数可以是数字字符串(参见注释 1)。
_int648inone (use 8P)指定 64 位整数。要返回 64 位整数类型,请使用 8P。输入参数可以是数字字符串(参见注释 1)。
_int64 *8p8P指向 64 位整数的指针。输入参数可以是数字字符串(参见注释 1)。
double *dD输入参数可以是数字字符串(参见注释 1)。使用 #D 以基数 2 格式保留双 *(参见注释 2)。
float *fF输入参数可以是数字字符串(参见注释 1)。使用 #F 以基数 2 格式保留浮点数 *(参见注释 2)。
char *1c or c1C or C这是常见的 C NULL 终止字符串(参见注释 3)。
unsigned short *2c or w2C or W这是一个 C 风格的 NULL 终止 UTF-16 字符串(参见注释 3)。
wchar t *4c4C这是一个以 NULL 结尾的 C 风格字符串,存储为 wchar_t 元素的向量(请参阅注释 3 和 4)。
ZARRAYP1b or b1B or B短的8位国家字符串(最多32,767个字符)。
ZWARRAYP2b or s2B or S16位Unicode短字符串(最多32,767个字符)。
ZHARRAYP4b4B存储在 wchar_t 实现的元素中的短 Unicode 字符串(最多 32,767 个字符)(参见注释 4)
IRIS_EXSTR1j or j1J or J8 位国家字符的标准字符串(不超过字符串长度限制)
IRIS_EXSTR2j or n2J or N16 位 Unicode 字符的标准字符串(不超过字符串长度限制)
IRIS_EXSTR4j4Jwchar_t 字符的标准字符串(最多字符串长度限制)(参见注释 4)
  1. i、p、d、f — 当指定数字参数时, IRIS 允许输入参数为字符串。有关详细信息,请参阅“使用数字链接”。
  2. #F、#D — 要以基数 2 浮点格式保存数字,请使用 #F 表示 float * 或使用 #D 表示 double *
  3. 1C、2C、4C — 通过此链接传递的所有字符串都将在第一个空字符处被截断。
  4. 4B、4C、4J — 虽然 wchar_t 通常为 32 位,但 IRIS 仅使用 16 位来存储每个 Unicode 字符。包含较大 wchar_t 值的输出参数将转换为 UTF-16 以分配给 $ZF 返回值。对于 $ZF 输入参数,包含 UTF-16(代理项对)的字符串将扩展为 wchar_t。可以使用 ObjectScript 函数 $WASCII()$WCHAR() 访问真正的 wchar_t 值。

结构和参数原型定义(包括内部定义)可以在包含文件 iris-cdzf.h 中看到。

这篇关于第八章 创建Callout Library - ZFentry 链接选项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring创建Bean的八种主要方式详解

《Spring创建Bean的八种主要方式详解》Spring(尤其是SpringBoot)提供了多种方式来让容器创建和管理Bean,@Component、@Configuration+@Bean、@En... 目录引言一、Spring 创建 Bean 的 8 种主要方式1. @Component 及其衍生注解

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

MySQL的触发器全解析(创建、查看触发器)

《MySQL的触发器全解析(创建、查看触发器)》MySQL触发器是与表关联的存储程序,当INSERT/UPDATE/DELETE事件发生时自动执行,用于维护数据一致性、日志记录和校验,优点包括自动执行... 目录触发器的概念:创建触www.chinasem.cn发器:查看触发器:查看当前数据库的所有触发器的定

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

python如何创建等差数列

《python如何创建等差数列》:本文主要介绍python如何创建等差数列的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python创建等差数列例题运行代码回车输出结果总结python创建等差数列import numpy as np x=int(in