周末调试一则jni程序,有一处是向java返回对象数组,但是总是出错,报错如下: # # An unexpected error has been detected by Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d8df0ed, pid=2260, tid=3168 # # Java VM: Java HotSpot(TM) Client VM (11.2-b01 mixed mode, sharing windows-x86) # Problematic frame: # V [jvm.dll+0xdf0ed] # # An error report file with more informati...
by tomqq - Java文档中心 - 2009-04-26 22:51:33 阅读(2177) 回复(0)
一。java中字符串的返回很容易,和其它如int类型没有什么区别,只是最后的时候需要做一下类型转换。 jniEXPORT jstring jniCALL Java_stringTest_displayString (jniEnv * env, jclass obj){ jstring jstr; char str[]="Hello World\n"; jstr=env->NewStringUTF(str); return jstr; } 给出java和c类型对应关系,以及String转换函数 Java类型 本地类型 字节(bit) boolean jboolean 8, ...
说明: 1.我的测试平台winXP,JBuildX(jdk1.4.2_04),vs.net2003. 2.参照网上的代码修改的,按照原先代码的分析,多维数组和这种二维数组的实现方式类似,没有测试。 3.这里不再分析,二维数组就是Object的元素仍然是Object,然后递归地一层层访问Object 用到的函数: env->GetArrayLength(array) //得到数组长度 env->GetObjectArrayElement(array, i) //取得Object数组第i个元素 env->GetStri...
Java与C之间通过jni传递中文字符串 因为java的打印类有点BUG,只好用jni调win的打印程序,结果碰到unicode到char的字符转换。原以为可以直接利用getStringChars的wchar_t类型字符,结果控制台打不出字符。后来在网上找到一个字符转换的函数 c风格的: char* jstringToWindows( jniEnv *env, jstring jstr ) { int length = (*env)->GetStringLength(env,jstr ); const jchar* jcstr = (*env)->GetStringChars(env,jstr, 0 );...
Java与C之间通过jni传递中文字符串 简介 本文提供一个具体的实例,说明Java和C之间通过jni传递含有中文字符串的参数,解决中文乱码问题(双字节或多字节乱码)。本文给出具体的源代码,对源代码进行了解释,C部分提供了 C和C++两种方式实现的完整代码。并且所有代码均在实验环境下测试通过。本文读者须对Java和C(或C++)有一定的基础知识。 实验环境 Windows XP (或Windows2000) j2sdk1.4.2/j2re1.4.2 Microsoft VisualC++6.0 安装...
DLL函数:char []Msg (int PortNo);调用后正确返回值为 0x30,0x31,0x00,0x31,'\0' 使用jnative实现java该函数调用,因为'\0'与0x00一样,现在得到的返回值为0x30,0x31,0x00; 请问有什么解决办法没有??
最近要做一个程序需要使用jni(LINUX/AIX下),现在程序已经作完,但是因为要操作中文字符,所以需要写2个函数,一个将jstring的中文转到char,一个将char转成jstring。参考了一些文档现在jstringtochar的函数已经搞定。但是chartojstring的函数一直没有搞定,C程序编译通过的过,但是一运行就报We are unable to locate the function name symbol for the error just occurred. Please refer to release documentation for possible...
最近要做一个程序需要使用jni(LINUX/AIX下),现在程序已经作完,但是因为要操作中文字符,所以需要写2个函数,一个将jstring的中文转到char,一个将char转成jstring。参考了一些文档现在jstringtochar的函数已经搞定。但是chartojstring的函数一直没有搞定,C程序编译通过的过,但是一运行就报We are unable to locate the function name symbol for the error just occurred. Please refer to release documentation for possible...
本文转自: http://www.itisedu.com/phrase/200604261218435.html jni 是 Java Native Interface 的缩写。从Java 1.1开始,Java Native Interface (jni)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。jni一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。 使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是...