(原)不明白JNI指针调用顺序
很不明白JNI里面获取指针的顺序(可能这样描述不太恰当吧)。
下面按照传入指针的顺序的代码一跑就崩溃。如下:
JNIEXPORT jint JNICALL Java_com_example_X_XX_XXX
(JNIEnv * env, jclass, jbyteArray databuf, jint width, jint height, jstring path, jintArray x1)
{
jboolean* pArraydata = (jboolean*)env->GetPrimitiveArrayCritical(databuf, );
char* pApath=env->GetStringUTFChars(path,);
jint* pAx1 = (jint*)env->GetPrimitiveArrayCritical(x1, ); // code; env->ReleasePrimitiveArrayCritical(databuf, pArraydata, );
env->ReleaseStringUTFChars(path, pApath);
env->ReleasePrimitiveArrayCritical(x1, pAx1, ); return eyedist;
}
之后将获取指针的顺序稍微修改了一下,然后就可以跑过去了。如下:
JNIEXPORT jint JNICALL Java_com_example_X_XX_XXX
(JNIEnv * env, jclass, jbyteArray databuf, jint width, jint height, jstring path, jintArray x1)
{
jboolean* pArraydata = (jboolean*)env->GetPrimitiveArrayCritical(databuf, );
jint* pAx1 = (jint*)env->GetPrimitiveArrayCritical(x1, );
char* pApath=env->GetStringUTFChars(path,); // code; env->ReleasePrimitiveArrayCritical(databuf, pArraydata, );
env->ReleasePrimitiveArrayCritical(x1, pAx1, );
env->ReleaseStringUTFChars(path, pApath); return eyedist;
}
(原)不明白JNI指针调用顺序的更多相关文章
- [原]捉虫记3:_ConectionPtr指针调用open失败
背景 产品使用MySQL来存储报警服务产生的报警.在报警服务的组件中使用ADO接口 客户方有两台计算机,一台计算机A用来组态,且可以对设备进行调试,操作系统是Win7 64bit 专业版,安装了VS2 ...
- cocos2d-x中使用JNI的调用JAVA方法
用cocos2d-x公布Android项目时.都应该知道要用JAVA与C/C++进行交互时会涉及到JNI的操作(Java Native Interface).JNI是JAVA的一个通用接口.旨在本地化 ...
- C++ 构造函数和析构函数的调用顺序、虚析构函数的作用
构造函数和析构函数的调用顺序 构造函数的调用顺序: 当建立一个对象时,首先调用基类的构造函数,然后调用下一个派生类的构造函数,依次类推,直至到达最底层的目标派生类的构造函数为止. 析构函数的调用书序: ...
- Android 页面跳转之生命周期调用顺序问题
Android Activity 常用技巧 Android Activity 启动模式和任务栈 Android 页面跳转之生命周期调用顺序问题 一.页面跳转逻辑分析 1.1 跳转逻辑分析 Androi ...
- C++复习14 构造函数初始化调用顺序
1.关于构造函数初始化调用顺序的问题. 首先是父类和子类的,首先调用父类的构造函数,然后调用子类的构造函数.但是对于子类中有其他类型的数据成员的时候,会在调用该类的构造函数之前,调用其数据成员的构造函 ...
- JNI注册调用完整过程-安卓4.4
在Android系统中,JNI方法是以C/C++语言来实现的,然后编译在一个so文件里面,以我之前的例子为例Android Studio使用JNI,调用之前要加载到当前应用程序的进程的地址空间中: s ...
- python 多个装饰器的调用顺序
python 多个装饰器的调用顺序 一般情况下,在函数中可以使用一个装饰器,但是有时也会有两个或两个以上的装饰器.多个装饰器装饰的顺序是从里到外(就近原则),而调用的顺序是从外到里(就远原则). 原代 ...
- 初始化错误——从一个简单的算例看UDF各个宏的调用顺序
感谢西安交通大学en_phert的问题和尝试 Fluent版本:Fluent 19.0 Visual Studio版本:Visual Studio 2013 在UDF的宏的调用中大家常看见下图: 这个 ...
- 3.(基础)tornado的接口调用顺序与模板
上一节介绍了tornado的请求与响应,这一节介绍tornado的接口调用顺序和模板 首先都有哪些接口呢?作用是什么呢?并且都有的时候,执行顺序是怎么样的呢? 接口 1.initialize,表示初始 ...
随机推荐
- 最短路径floy算法———模板
#include<cstdio>int n,i[1000][1000];int main(){ scanf("%d",&n); for (int a=1;a&l ...
- Linux Shell(初识)
什么是Shell:Shell是一个命令解释器. Linux下支持shell的种类: 1. Bourne Shell(简称sh) 2.C Shell(简称csh) 3.Korn Shell(简称ksh ...
- 用phpMyAdmin修改mysql数据库密码
1初始数据库密码为空. 2第一步,点击phpMyAdmin里的用户选项. 3选择root localhost用户名,点击编辑权限. 4此时会出来修改权限的页面,里面可以设置的选项还是比较多的,暂时不管 ...
- php中利用HttpClient判断页面状态
$url = ''; $info = parse_url($url); $httpClient = new HttpClient($info['host']); $httpClient->get ...
- ecshop安全方面的一些参考建议
一,ecshop安装,其实很简单,只要一直下一步下一步点击即可,这样总是没有错的,因为官方不可能给我们一个有问题的程序,尽量从简即可. 请注意一下两点 A:在安装ecshop的时候,不要将所有文件都设 ...
- R语言数据处理
写在前面:数据处理是数据分析与挖掘必不可少的步骤.下面列出一些常用的数据处理操作. 一.类型转换 用class()查看数据的类型,用as.类型名()进行类型转换. > num <- as. ...
- 解决ligerUI服务器分页Total不起作用的问题
Js代码: $('#userTable').ligerGrid({ width:'100%', height:'100%', title:'用户列表', //url:'', dataAction: ...
- Scala学习笔记--枚举
枚举 scala不用关注枚举的特别语法,取而代之的是标准库中的类, scala.Enumeration 想要创建新的枚举,只需要拓展这个类的对象即可 object Color extends Enum ...
- 【转】使用adb命令对手机进行截屏(截图)保存到电脑,SDCard
原文网址:http://blog.csdn.net/huangyabin001/article/details/29198367 adb shell /system/bin/screencap -p ...
- SQL Interview Question
面试的时候发现会问一些SQL的基本问题,在此总结一下. ProgramInterview/SQL 这个网站上的问题还比较全. 1. Join type INNER JOIN: Returns all ...