Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 定义一个swig接口文件,用于从某个头文件生成每种类型的包装器_Java_Swig - Fatal编程技术网

Java 定义一个swig接口文件,用于从某个头文件生成每种类型的包装器

Java 定义一个swig接口文件,用于从某个头文件生成每种类型的包装器,java,swig,Java,Swig,我们在Java项目中使用了一些C库。几年前,其他几年前退休的开发人员(一如既往)为我们创建了所有包装。包装器是由swig生成的,但是接口文件现在丢失了 库及其包装的基本思想如下: 只有一个函数返回指向某个复杂对象的指针。还有这个函数的包装器 复杂对象是一个树状结构,有几十种节点类型(C结构)用来表示它们。每种类型的每个字段都有数百个包装器,我们正在尝试全部使用它们 该库在一段时间前进行了更新,现在有一些新数据我们还不知道,但希望使用。这些数据包含在我们调用的函数创建的对象间接包含或引用的一些

我们在Java项目中使用了一些C库。几年前,其他几年前退休的开发人员(一如既往)为我们创建了所有包装。包装器是由swig生成的,但是接口文件现在丢失了

库及其包装的基本思想如下:

  • 只有一个函数返回指向某个复杂对象的指针。还有这个函数的包装器
  • 复杂对象是一个树状结构,有几十种节点类型(C结构)用来表示它们。每种类型的每个字段都有数百个包装器,我们正在尝试全部使用它们
该库在一段时间前进行了更新,现在有一些新数据我们还不知道,但希望使用。这些数据包含在我们调用的函数创建的对象间接包含或引用的一些对象中(添加了一些新字段和类型)

我知道我不应该手工修改包装器,而应该修改接口,但正如我已经写的那样,它丢失了。现在我只想生成一些添加/更改的包装类型,并将它们添加到我们的旧包装中,但稍后我想开始创建接口文件,该文件将定义“应该包装什么和如何包装”

我们需要的所有定义都在单个头文件中定义。可以告诉swig为此标头中的每种类型生成包装器吗?如果是,如何编写此类接口文件?

来自:

事实证明,情况并非总是如此 需要编写一个特殊的接口 文件如果您有一个头文件,那么 通常可以直接将其包含在 SWIG接口。例如:

 %module example
 %{
 /* Includes the header in the wrapper code */
 #include "header.h"
 %}

 /* Parse the header file to generate wrappers */
 %include "header.h"