바이트 배열 (File..etc를 나타내는 바이너리 데이터)이나 문자 배열에 대한 포인터 일 수있는 unsigned char *를 반환하는 C 함수가 있습니다. 현재 SWIG %array_class
을 사용하여 서명되지 않은 char 포인터를 반환하는 모든 C 함수를 래핑하고 Java 배열 유틸리티 (SampleArrayUtil.java)를 생성하여 Java 측에서 채우기 및 회수를 처리합니다.SWIG array_class를 사용하여 바이트 배열 데이터 래핑
제 문제는 unsigned char *
을 사용하여 랩핑합니다. 즉, %apply char * { unsigned char * };
을 사용하면 Java 측에서 String 배열을 얻을 수 있습니다. 내가 이진 데이터를 다시 가져올 때 %apply char * { unsigned char * };
을 사용하여 unsigned char *
반환 값을 감싸고 싶지 않습니다. Java 측에서 바이트 배열을 원합니다. 나는 바이너리 데이터를 처리하는 또 다른 C 함수를 만드는 생각했다, 그러나 나는 또한이 unsigned char *
(getValueFromRowAsByteArray
참조)
C 함수 리턴으로 새로운 기능을 포장하는 방법을 확실 해요 :
unsigned char * getValueFromRowAsStringArray(struct result_row *row, attribute_type type, int32_t *len)
unsigned char * getValueFromRowAsByteArray(struct result_row *row, attribute_type type, int32_t *len)
//*row* input param with data results, *type* input enum type for the data type being requested and *len* is an output param that contains the length of the data being returned.
Java 인터페이스에서 C 유형의 동일한 유형 (유형 맵핑을 선택적으로 적용하려는 경우)으로 다른 유형을 리턴하려고합니다. (답변을 작성하기 전에 우리가 같은 페이지에 있는지 확인하십시오.) – Flexo
@awoodland - 맞습니다. – c12