第七章 创建Callout Library - 创建 ZFEntry 表
2023-12-28 16:39:10
第七章 创建Callout Library - 创建 ZFEntry 表
创建 ZFEntry
表
每个 Callout
库必须定义一个 ZFEntry
表,该表允许 IRIS
加载和访问 Callout
函数。 ZFEntry
表由以 ZFBEGIN
开头、以 ZFEND
结尾的宏代码块生成。在这两个宏之间,必须为要公开的每个函数调用一次 ZFENTRY
宏。
每个 ZFENTRY
调用都采用三个参数:
ZFENTRY(zfname,linkage,entrypoint)
其中 zfname
是用于在 $ZF
调用中指定函数的字符串,linkage
是指定如何传递参数的字符串,entrypoint
是 C
函数的入口点名称。
要创建 Callout
库,代码必须包含 #define ZF_DLL
指令,该指令是一个开关,可生成用于定位库函数的内部 GetZFTable
函数。加载 Callout
库时, IRIS
调用此函数来初始化该库,以便后续查找库函数名称。
注意:ZFEntry
序列号
ZFEntry
表中条目的位置可能很重要。 $ZF(-5)
和 $ZF(-6)
接口(在“调用标注库函数”中描述)都通过指定表中的序列号(从 1
开始)来调用库函数。例如,$ZF(-6)
将通过以下调用调用 ZFEntry
表中的第三个函数:
x = $ZF(-6,libID,3)
其中 libID
是库标识符,3
是表中第三个条目的序列号。
注意:预编译头文件
某些编译器(例如 Microsoft Visual Studio
)支持预编译头。如果使用预编译头,则 #define ZF_DLL
语句必须对预编译有效。如果不是,生成的 dll
在使用时将导致 <DYNAMIC LIBRARY LOAD>
错误。强烈建议不要将预编译头用于 Callout
库。
文章来源:https://blog.csdn.net/yaoxin521123/article/details/135259818
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!