首页 > 编程知识 正文

java调用c的方式,visual studio code配置java环境

时间:2023-05-04 23:39:36 阅读:143327 作者:182

I have C method with varargs

voidmessage(intid,…)

anditshouldcalljavastaticmethodwithvararg

公共静态语音消息(醉熏的皮带、字符串. args ) )。

howcanidoitusingcvalistandjniapi?

汉克you!

解决方案

yurnotlikelytogetanyuseoutofpassingtheaddressofava _ listuptojava.hereareafewsnippetshowinghowtopassupanarrayusing ' . '。

In Java:

staticprivatevoidjavadefinearray (object . args )。

for(objecto:args ) {

打印(javadefinearray ) o;

}

}

In C:

//lookupthemethodusinggetmethodidorpsdgb/pmid=(* env )-getstaticmethodid (env,class,' javaDefineArray ',) )

//cfunctiontakingvariableargs (allstringinthisexample ) )。

staticvoidjavadefinearray (kqdfsenv,jobject o,) )。

int i=0;

int count=0;

char * msg[100 1]={0}; //100 args max

jobjectArray ja;

va_list list;

va_start(list,o );

do{msg[count]=va_arg(list,char * );

}while(msg[count]!=0 count 100; //end/saftey check

va_end(list;

for(I=0; I!=计数; I ) {

(env )-setobjectarrayelement (env,ja,I,) ) env )-new string utf (env,msg[i] );

}

(env )-callvoidmethod(env,o,mid,ja );

}

C Usage:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。