나는 C++ 기능을 가지고 : 나는 다음과 JNA 바인딩을 사용하는 경우JNA 직접 호출 인수 구조와 작동하지 않습니다 []
struct Result {
//...
};
bool doSomething(Result[]);
이, 함수 호출이 잘 작동 :
public class Result extends Structure {
//...
}
public interface CPPLibrary extends Library {
public static final CPPLibrary INSTANCE = (CPPLibrary)Native.loadLibrary("dllname");
boolean doSomething(Result[]);
}
그러나 로 직접 호출, 나는 에 부딪쳤다.클래스 [Lcom.usta.Result; (com.usta.CPPLibrary 클래스의 calcPV01 메서드에서)이 지원되는 인수 유형이 아닙니다. 직접 전화 매핑에 대한 나의 JNA 코드 :
public class CPPLibrary implements Library {
Native.register("dllname");
public static native boolean doSomething(Result[]);
}
내가 com.sun.jna.Function # convertArgument (에서 볼 수) 명시 적으로 구조 []하지만 com.sun.jna.Native를 처리 직접 호출 매핑에서 사용하는 #getConversion()은 구조 []을 처리하지 않습니다.