javah生成的头文件在方法名前加1
来源:互联网 发布:nginx https配置 编辑:程序博客网 时间:2024/06/10 05:24
今天编程的时候遇到,
java类中的本地函数声明是:
private native static intopen_device(String path);
而在生成的头文件中确实这样的:
JNIEXPORT jint JNICALL Java_com_coban_a83tled_A83TLed_open_1device(JNIEnv *, jclass, jstring);明显在方法名中多了一个1;
然后我把函数名声明称这样:
private native static int open(String path);
而生成的头文件中是这样的:
JNIEXPORT jint JNICALL Java_com_coban_a83tled_A83TLed_open (JNIEnv *, jclass, jstring);很明显这样没有1;
然后我把函数名声明称这样:
private native static intopen_led_device(String path);
而生成的头文件中是这样的:
JNIEXPORT jint JNICALL Java_com_coban_a83tled_A83TLed_open_1led_1device (JNIEnv *, jclass, jstring);很明显多了俩1
通过这样可以看出来,和函数声明中的下划杠“_”有关。经过查资料,因为jni把C函数名映射成java方法名的时候是com_mypackage_myclass_mymethod();com.mypackage.myclass.mymethod();也就是说jni是依靠下划杠'_'来间隔包、类、方法的,但是如果你的方法名中有'_'字符的话,jni必须能够区分方法名中的'_'字符还是间隔符,所以用加一个1后缀的方式来区分。
所以声明的时候还是要注意点,不过不影响我们使用。
借鉴了:
http://www.01yun.com/other/20160308/658170.html
http://www.myexception.cn/j2se/681720.html
在这里表示感谢。
- javah生成的头文件在方法名前加1
- javah命令生成头文件的方法、常见错误解析
- 用javah生成jni本地方法的头文件
- 用javah生成jni的头文件
- javah 生成.h的头文件
- Javah 生成头文件的正确使用方法
- 在Eclipse里利用javah把java代码声明的JNI方法自动生成成C\C++头文件
- Javah生成JNI头文件
- javah生成jni头文件
- javah生成jni头文件
- Javah生成JNI头文件
- Javah生成JNI头文件
- javah 生成 jni 头文件
- javah 生成jni头文件。
- Javah生成JNI头文件
- javah生成jni头文件
- javah 生成 JNI头文件
- JAVAH生成JNI头文件
- 依赖z-index值创建层叠上下文
- 关于UnityEngine.UI.Button.ButtonClickedEvent事件列表
- Android MPChart 实现BarChart图形,负数条形显示在0一下,正数条形在0以上的!
- Android Training学习笔记之开始篇
- Qt之OpenSSL
- javah生成的头文件在方法名前加1
- 二叉树相关
- 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
- opencv环境变量配置
- jquery jsonp跨域请求
- Java的native方法
- iOS开发概述UIkit动力学
- HTML 学习总结
- Android 基础总结:( 二十一)AIDL详解(下)