2011-01-10 4 views
0

구조체를 반환 형식으로 사용하는 간단한 SWIG 예제를 얻으려고하는데 생성 된 파일이 잘못되었습니다. 내 파일은 이렇게 보입니다.SWIG C++ structure to java

%module MyModule 
%{ 
#include "SwigTest.h" 
#include "MyHeader.h" 
%} 
extern MyHeader testMe(); 

결과 JNI 파일

내 방법은 원시적을 반환하는 경우
public class MyModuleJNI { 
    public final static native long testMe(); 
} 

, 그것은 잘 작동 다음과 같은 메소드 선언을 가지고 있지만 :

SwigTest.h 
#pragma once 
#include "MyHeader.h" 
class SwigTest 
{ 
public: 
    MyHeader testMe(); 
}; 

MyHeader.h 
struct MyHeader { 
    int x; 
} 

내 꿀꺽 꿀꺽 인터페이스 파일입니다 구조체와 함께. 내가 윈도우에서 실행되고있어 swig.exe -java -c++ MyModule.i

편집 : 나는 구조체를 .i 파일로 선언해야한다고 생각한다. 누군가 그 사실을 확인 (또는 분쟁) 할 수 있습니까? 감사.

덕분에, 제프

답변

1

예 당신은뿐만 아니라 인터페이스 파일의 구조체를 선언해야합니다.

이 시도 :

%module MyModule 
%{ 
#include "MyHeader.h" 
#include "SwigTest.h" 
%} 

%include "MyHeader.h" 
%include "SwigTest.h" 

또한 안전 그것의 사용을 만드는 코드 앞에 구조체를 선언합니다.