2011-12-09 13 views
1

C関数がsample_struct_tとして宣言しているので、SWIGがsample_struct_t.javaに生成する以下のようなC構造をいくつか持っています。 Sample.struct構造体をSample.javaとして生成するには、SWIGインタフェースファイルに何を追加する必要がありますか?これが最初に見られる前に名前を変更する方法C構造から作成されたSWIG生成プロキシJavaクラス

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

答えて

1

あなたは、非typedef D」(すなわち元)の名前で%renameを使用する必要があります。

%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構造体のtypedefの中に入れて行方不明になりましたSWIGインターフェイスファイル、ありがとう! – c12

+0

名前を変更するには、構造全体を綴る必要があります(すべての属性を指定しますなど)。私はいくつかのtypedef struct session_t構造体を持っています。本文を持たないヘッダーファイル内の宣言で、そのヘッダーファイルのいずれかでさらに宣言が見つかりません。私は上記のように名前を変更しようとしましたが(マイナスの場合)、名前は変更されません。 – c12

+0

@ c12 - いくつかの定義があると私は思います。その定義は、文字通りSWIGの目的のために 'struct Foo {};とすることができます。 – Flexo

関連する問題