7장. float 데이터형 값 주고 받기
반지름을 전달하면 원의 넓이를 반환하는 예제를 만들어 보자.
$ vi PassAndReturnFloat.cpp#include <jni.h>
jfloat circleArea
(
JNIEnv *env,
jobject thiz,
jfloat radius
)
{
return 3.141592 * radius * radius;
}
JNIEXPORT jint JNICALL JNI_OnLoad
(
JavaVM *vm,
void *reserved
)
{
JNIEnv *env;
if(vm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6)) {
return -1;
}
JNINativeMethod nm {
const_cast<char *>("circleArea"),
const_cast<char *>("(F)F"),
reinterpret_cast<void *>(circleArea)
};
jclass cls = env->FindClass("Client");
env->RegisterNatives(cls, &nm, 1);
return JNI_VERSION_1_6;
}컴파일하고 라이브러리로 만든다
자바 코드에서 라이브러리를 사용해 보자.
자바 코드를 컴파일하고 실행해 본다.
Last updated
Was this helpful?