2010-05-05 17 views
0

我們在Java項目中使用了一些C庫。幾年前,幾年前退休的其他開發人員(一如既往)爲我們創建了所有的包裝。包裝由swig生成,但接口文件現在已經丟失。定義一個swig接口文件,用於從某個頭文件生成每種類型的封裝器

庫,併爲它包裝的基本思路是以下幾點:

  • 只有一種功能,它返回指向一些複雜的對象。還有那個函數的包裝器。
  • 複雜對象是一個具有許多節點類型和類型(C結構)的樹狀結構,用於表示它們。每種類型的每個字段都有數百個包裝,我們正在嘗試使用它們。

圖書館已經更新了一段時間,現在有一些新的數據我們還沒有意識到,但想使用。這些數據包含在由我們調用的函數(添加了一些新的字段和類型)創建的對象間接包含或引用的一些對象中。

我知道我不應該手動對包裝進行任何更改,而應該修改界面,但是因爲我已經寫過它缺少。現在我只想生成一些包裝器,這些包裝器被添加/更改並添加到我們舊的包裝器中,但後來我想開始創建界面文件來定義「應該包裝什麼和如何包裝」。

我們需要的所有定義都是在單頭文件中定義的。是否有可能告訴swig爲這個頭文件中的每個類型生成包裝?如果是這樣,我該如何編寫這樣的接口文件?

回答

2

swig tutorial

事實證明,它並不總是 必要寫一個特殊的接口 文件。如果你有一個頭文件,你可以直接在 的SWIG接口中包含它。例如:

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

/* Parse the header file to generate wrappers */ 
%include "header.h" 
相關問題