1

私は typemaps を使用しました:

%include "typemaps.i"

%apply SWIGTYPE * {char *deci};

これは、SWIG によって生成されたプロキシ クラスです。

public class SWIGTYPE_p_char {
    private long swigCPtr;

    protected SWIGTYPE_p_char(long cPtr, boolean futureUse) {
        swigCPtr = cPtr;
    }

    protected SWIGTYPE_p_char() {
        swigCPtr = 0;
    }

    protected static long getCPtr(SWIGTYPE_p_char obj) {
        return (obj == null) ? 0 : obj.swigCPtr;
    }
}
4

1 に答える 1

1

些細なことのようですが、試しましたか:

SWIGTYPE_p_char my_p_char;

結局のところ、クラスに含まれているのはポインタ アドレスの long int 表現だけです。

明らかに、char* を返すか、疑似戻り値として char* パラメータを使用する ac 関数にのみ使用できます。

char* 入力パラメーターを使用する場合は、おそらく何らかのヘルパー関数を作成する必要があります

最近、この関数プロトタイプを SWIG でラップしました。

int load_config(const char *fn, Config *cfg);

文字列(char *)で指定されたファイルから私のConfigデータ構造にデータをロードしました

次の行で Java から呼び出すことができました。

example.load_config("test.cfg", cfg);

または代わりに:

String cfg_file = "test.cfg";
example.load_config(cfg_file, cfg);
于 2012-08-09T10:34:33.570 に答える