在 AIX 平台上创建语言环境时,需要装入共享程序库。在 AIX 中,当提供一个由 Net.Data 调用的 例程时,或返回语言环境例程(例如 dtw_initialize() 和 dtw_execute())的地址时,需要提供语言环境。
Net.Data 使用 dtw_fp 结构从 AIX 的语言环境中检索指向该语言环境接口例 程的指针,其格式如下:
typedef struct dtw_fp { int (* dtw_initialize_fp)(); /* dtw_initialize 函数指针 */ int (* dtw_execute_fp)(); /* dtw_execute 函数指针 */ int (* dtw_getNextRow_fp)(); /* dtw_getNextRow 函数指针 */ int (* dtw_cleanup_fp)(); /* dtw_cleanup 函数指针 */ } dtw_fp_t;
当装入共享库时,这个结构由 Net.Data 作为 dtw_getFp() 例程中的一个参数被 传递到语言环境。
作为仅有的参数来传递 dtw_fp 结构。此结构包含一个用于每个所支持接口的字段, 并且由语言环境来设置这些字段。如果语言环境提供指定的接口,则它将该字段设置成 指向指定接口的函数指针。 如果语言环境没有提供指定的接口,则它将该字段设置 成 NULL。程序模板中的 dtw_getFp() 例程显示了此例程的一个正确实现。
为了在装入共享库时 Net.Data 能够获得指向这个例程的指针,dtw_getFp 例程 必须是在共享库的调出文件中指定的第一个入口点。以下是 dtwsampshr.o 库 的调出文件的一个例子,这个库支持所有可用的语言环境接口例程。
#!dtwsampshr.o dtw_getFp dtw_initialize dtw_execute dtw_getNextRow dtw_cleanup