개발, 전산, AI, IT
[자바] 밑줄 (_) 이 들어가는 JNI 함수명
크롬망간
2018. 11. 30. 17:01
[자바] 밑줄 (_) 이 들어가는 JNI 함수명
JNI에서는 함수명에 자바의 패키지 경로를 모두 쓰게 되는데, 그 때에 .(점)을 _(밑줄)로 치환하게 됩니다. 따라서 자바 함수명 자체에 밑줄이 있으면 문제가 생깁니다. 이런 경우 자바 함수명에 있는 밑줄은 JNI에서 _1로 치환하면 됩니다. 아래는 간단한 예제입니다.
// 자바
package com.tistory.crmn;
public class Hello {
static native int get_hello();
}
// JNI
extern "C" JNIEXPORT jint JNICALL
Java_com_tistory_crmn_Hello_get_1hello(JNIEnv* env, jobject thiz) { // get_1hello에 주목하세요
return (jint) 1;
}