Hello JNI (5), 원시 자료형 주고 받기
From Evernote: |
Hello JNI, 원시 자료형 주고 받기 |
자바의 원시 자료형을 매개변수로 주고 받을 때에는, 문자열을 가져오고 생성하는 것과는 달리, JNI 의 변환 함수를 거칠 필요가 없다. 자료형의 크기 등에만 주의하면 된다.
package kr.pe.elex.example.jni;
/**
* JNI 테스트
*
* @version 5
* @author Elex
*/
public class HelloJni {
static {
System. loadLibrary("libhellojni");
}
private native int sum(int a, int b);
public static void main(String[] args) {
int a = 2, b = 3;
HelloJni test = new HelloJni();
System. out.println(a + " + " + b + " = " + test.sum(a, b));
}
}
/*
* hellojni.c
* JNI 테스트를 위한 C 라이브러리
* Author: Elex
*/
#include "kr_pe_elex_example_jni_HelloJni.h"
JNIEXPORT jint JNICALL
_Java_kr_pe_elex_example_jni_HelloJni_sum (JNIEnv *env, jobject obj,
jint a, jint b)
{
return a + b;
}
#. 시스템 환경마다 또 컴파일러마다 조금씩 다르겠지만, jni_md.h 파일에는 jint가 long형으로 선언되어 있다. 즉, 4바이트.
<프로젝트 파일>
http://www.elex.pe.kr/attachment/cfile30.uf@2114F74F523204F907D5B8.7z
댓글
댓글 쓰기