Android
2014.08.04 16:48

JNI에서 가변 인수(varargs) 쓰기

조회 수 7793 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

JAVA 쪽


static private void javaDefineArray(Object ... args) { 
    for (Object o : args) {
        print("javaDefineArray " + o);
    }
}


C쪽


// Lookup the method using GetMethodID or GetStaticMethodID
mid = (*env)->GetStaticMethodID(env, class, "javaDefineArray", "([Ljava/lang/Object;)V");

// C function taking variable args ( all String in this example )
static void javaDefineArray(JNIEnv * env, 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);
  ja = (*env)->NewObjectArray(env, count, (*env)->FindClass(env, "java/lang/String"), (*env)->NewStringUTF(env, ""));
  for(i=0;i!=count;i++) {
    (*env)->SetObjectArrayElement(env,ja,i,(*env)->NewStringUTF(env, msg[i]));
  }
  (*env)->CallVoidMethod(env, o, mid, ja);
}


Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
506 LINUX epoch time을 실제 시간으로 변환해주는 excel 함수 2015.03.18 9322 0
505 일반 사용하지 않는 COM Port 삭제하기 2015.03.18 9689 0
504 Pi ftp 설정하기 2015.10.01 7593 0
503 LINUX Ubuntu php5.6 , php7.1 설치 및 셋팅하기 2020.02.11 5768 0
502 PHP [PHP] .php 확장자 없이 URL 접속하기 2020.10.26 5157 0
501 업무 Back-End 관련 정보 2022.05.17 2105 0
500 PHP SQL :: EXIST , NOT EXIST 2022.09.05 1917 0
499 Pi 라즈베리파이 웹페이지 자동 실행 설정 방법 secret 2020.11.03 0 0
498 일반 프리미어 프로 Premier Pro secret 2022.02.04 0 0
497 일반 나사 규격 2016.10.19 21041 0
496 일반 소스코드 게시판입니다. 2005.07.29 46389 0
495 C 콘솔 창에서 글자 색깔 바꾸기 2005.08.05 27758 0
494 C 입출력 파일을 표준입력으로 받아 열기 2005.08.05 29837 0
493 개념 CFM(Content Forward Management) 2012.01.27 18335 0
492 C Trim() - 줄 앞뒤의 공백, 탭을 없애주는 함수 2005.08.05 41224 0
목록
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 ... 34 Next ›
/ 34

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5