Perl技术:API实现、未来展望与Tk组件详解
1. 简易嵌入API
在编程实践中,我们可以实现之前介绍过的便捷API,包括 perl_call_va
、 perl_eval_va
以及用于访问或修改标量值的一系列函数,如 get_int
、 set_int
等。这里我们着重实现 perl_call_va
。 perl_eval_va
是这个过程的简化形式,因为它不需要任何输入参数(要计算的字符串包含了所有信息)。而用于修改标量的API函数是 sv_set*
、 av_store
和 hv_store
的简单包装,大家可以自行尝试实现。
perl_call_va
接受一个以NULL结尾的类型化参数列表,这个列表包含输入和输出参数。下面是具体的实现代码:
#define MAX_PARAMS 20
typedef struct {
char type;
void *pdata;
} Out_Param; /* To remember the "Out" section */
int perl_call_va (char *subname, ...)
{
char *p = NULL;
char *str = NULL; int i