2011-12-09 49 views
1

由於C函數聲明它爲sample_struct_t,因此我有幾個C結構,如下所示,它們由SWIG生成到sample_struct_t.java中。我需要將什麼添加到SWIG接口文件以生成sample_struct_t結構作爲Sample.java?如何重命名由C結構創建的SWIG生成的代理Java類

typedef struct sample_struct_t_ { 
    char        *sample; 
    uint8_t        example; 
    ios_boolean       remove; 
} sample_struct_t; 

回答

1

您需要使用%rename與非typedef「d(即原始)名稱,在此之前,首先看到:

%module test 

%rename (Sample) sample_struct_t_; 

typedef struct sample_struct_t_ { 
    char        *sample; 
    uint8_t        example; 
    ios_boolean       remove; 
} sample_struct_t; 
+0

我是缺少將在C結構的類型定義的SWIG接口文件,謝謝! – c12

+0

你是否總是要拼出整個結構(指定所有屬性..等等)才能對其進行重命名?我有幾個typedef結構會話session_t;在我的頭文件中沒有正文的聲明,我無法在任何頭文件中找到進一步的聲明。我試圖重命名它像上面(減去身體),但它不會重命名。 – c12

+0

@ c12 - 我認爲需要提供一些定義。對於SWIG的目的,該定義實際上可以是'struct Foo {};'。 – Flexo

相關問題