swig.i
%typemap(jtype) bool foo "byte[]"
%typemap(jstype) bool foo "byte[]"
%typemap(jni) bool foo "jbyteArray"
%typemap(javaout) bool foo { return $jnicall; }
%typemap(in, numinputs=0) std::string& out (std::string temp) "$1=&temp;"
%typemap(argout) std::string& out {
$result = JCALL1(NewByteArray, jenv, $1->size());
JCALL4(SetByteArrayRegion, jenv, $result, 0, $1->size(), (const jbyte*)$1->c_str());
}
// Optional: return NULL if the function returned false
%typemap(out) bool foo ""
%inline %{
struct Bar {
bool foo(std::string& out) {
std::string s;
s.push_back('H');
s.push_back('o');
s.push_back(0);
s.push_back('l');
s.push_back('a');
out = s;
return true;
}
};
%}
爪哇
public byte[] foo() { return NativeISecurityProviderJNI.Bar_foo(swigCPtr, this); }
直到这里一切都很好,但我想要得到的是这个java返回(byte [])作为参数。 喜欢
public void foo(byte[] example) {}
为了达到这个目的,我尝试了很多可能的修改,但没有办法,我已经没想象了。 我会很感激任何建议。非常感谢你。
答案 0 :(得分:0)