JNI:Java调用C/C++-传递空值(null)的处理方法
来源:互联网 发布:mysql默认的存储引擎 编辑:程序博客网 时间:2024/04/29 03:32
如这篇文章所述:http://blog.csdn.net/duyiwuer2009/article/details/7570921
Java将null传递给C/C++代码是很容易出现问题,那么如何处理呢?看下面这个例子:
在C/C 代码中判断传递过来的对象是否为NULL
class JNIString{static{System.loadLibrary("JNIString");}public static native String strMethod(String s);}/*javac JNIString.javajavah JNIString.java// get the file JNIString.h*/#include "JNIString.h"#include <string.h>JNIEXPORT jstring JNICALL Java_JNIString_strMethod(JNIEnv *env, jclass jcls, jstring jstr){int i;char str2[128];if(jstr == NULL)// 判断传递过来的对象是否为NULL{printf("null\n");return NULL;// 此外,也可以返回NULL,Java得到的将是null}const char *str = env->GetStringUTFChars(jstr, NULL);// must be const// const jchar * GetStringChars(JNIEnv *env, jstring string, jboolean *isCopy);printf("%s\n", str);strcpy(str2,str);env->ReleaseStringUTFChars(jstr, str);return env->NewStringUTF(str2);}/*set java_inc=E:\FILES\java\jdk1.6.0_29\includecl -I%java_inc% -I%java_inc%\win32 -LD JNIString.c -FeJNIString.dll*/public class Test{public static void main(String[] args){String str = "abc123abc";// 123中国123湖北123武汉123String s1 = new String(str);String s2 = JNIString.strMethod(s1);System.out.println(s2);str = null;s2 = JNIString.strMethod(str);}}
0 0
- JNI:Java调用C/C++-传递空值(null)的处理方法
- JNI:Java调用C/C++-传递空值(null)的处理方法
- jni - c 调用java方法
- c/c++/java,函数调用的参数的传递方法
- jni c调用java的方法签名生成方法
- JNI调用C方法
- Java通过JNI调用C语言的方法
- Java 调用C 或者其他语言的方法-JNI
- jni c调用java 方法封装后出现的问题
- Java通过JNI调用C语言的方法
- Java通过JNI调用C语言的方法
- 【JNI】C中调用JAVA的参数、方法
- JNI中C/C++调用JAVA类的方法
- java 调用本地C/C++方法:jni
- JNI中C调用Java方法
- JNI中C调用Java方法
- JNI:JAVA调用C库方法
- JNI中C调用Java方法
- 《基于ORACLE的SQL优化读书》笔记 星形转换/谓词推入/连接因式分解/表移除
- SQL表之间复制数据、选出随机几条数据、删除重复数据、取得自增长列等操作
- 以编码的方式实现Auto Layout自动布局(二)
- Project Euler 11~15
- hadoop2.2.0安装说明
- JNI:Java调用C/C++-传递空值(null)的处理方法
- 无数曾经伟大的工作室和他们的经典作品都成为
- 模糊知识点之通过过滤器实现Gzip压缩
- poj-3687-Labeling Balls-反向建图+拓扑排序
- mybatis中映射文件的resultType和resultMap
- fs
- 一些企业的面试题(笔试),数学&逻辑
- C++继承与派生 笔记
- 判断电脑是否联网