来自http://swig.10945.n7.nabble.com/Re-How-to-specify-access-to-a-java-nio-
ByteBuffer-td6696.html的一些经过修改的示例,应在进行较小的更改(特别是在
%typemap(in) (char* pchOutput, int*outputSize))因为我没有编译它,所以只需运行swig来检查Java端是否正确生成。
%typemap(in) (char* pchInput, int inputSize) { $1 = JCALL1(GetDirectBufferAddress, jenv, $input); $2 = (int)JCALL1(GetDirectBufferCapacity, jenv, $input); } %typemap(in) (char* pchOutput, int* outputSize) { $1 = JCALL1(GetDirectBufferAddress, jenv, $input); $2 = &((int)JCALL1(GetDirectBufferCapacity, jenv, $input)); } %typemap(jni) (char* pchInput, int inputSize), (char* pchOutput, int* outputSize) "jobject" %typemap(jtype) (char* pchInput, int inputSize), (char* pchOutput, int* outputSize) "java.nio.ByteBuffer" %typemap(jstype) (char* pchInput, int inputSize), (char* pchOutput, int* outputSize) "java.nio.ByteBuffer" %typemap(javain) (char* pchInput, int inputSize), (char* pchOutput, int* outputSize) "$javainput" %typemap(javaout) (char* pchInput, int inputSize), (char* pchOutput, int* outputSize) { return $jnicall; }


