2 mjy2012 mjy2012 于 2014.06.05 14:47 提问

JNI中已经有C++类型,不知如何定义Java类型

现在我有个C++写好的dll,打算用JNI来调用,看了网上的资料。首先先写Java代码,然后用javah命令,最后在jni中调用调用已经存在的dll函数。现在遇到java类型转换的问题。
现在有个函数
jcu_user_handle_t* jcu_net_login(

char *ip,

unsigned short port,
char *user,

char *pass,

int timeout,

jcu_event_cb_t *event_cb,
jcu_notify_cb_t *complete_cb);

其中参数jcu_event_cb_t类型为
typedef struct _jcu_event_cb_s{

void *user_arg;
int (*callback)(struct _jcu_event_cb_s *handle,jcu_cb_parm_t *parm);
}jcu_event_cb_t;

其中参数jcu_cb_parm_t类型为
typedef struct _jcu_cb_parm_s{

int id;

int args;

int size;

char *data;
}jcu_cb_parm_t;

其中参数jcu_cb_parm_t类型为
typedef enum _JCU_EVENT_ID_E {

int is_sync;

void *user_arg;
int (*callback)(struct _jcu_notify_cb_s *handle, jcu_cb_parm_t *parm);
}jcu_notify_cb_t;
求各位大神指点一下类型应该如何转换?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
JNI中java类型与C/C++类型对应关系及接口写法
1.了解JNI中JAVA类型与C/C++的映射关系 JAVA类型 本地类型 JNI中自定义类型 描述 int long jint/jsize signed 32 bits long _int64 jlong signed 64 bits byte signed char jbyte
Jni中本地类型和java类型对应表
表A Java 类型 本地类型 描述 boolean jboolean C/C++8位整型 byte jbyte C/C++带符号的8位整型 char jchar C/C++无符号的16位整型 short jshort C/C++带符号的16位整型 int jint C/C++带符号的32位整型
JNI和NDK编程(三)JNI的数据类型和类型签名
JNI的数据类型和类型签名JNI的数据类型包含两种: 基本类型和引用类型.基本类型主要有jboolean, jchar, jint等, 它们和Java中的数据类型对应关系如下表所示: JNI类型 Java类型 描述 jboolean boolean 无符号8位整型 jbyte byte 无符号8位整型 jchar char 无符号16位整型 jsho
Java中JNI的使用详解第四篇:C/C++中创建Java对象和String字符串对象及对字符串的操作方法
2013-12-22 09:32 45人阅读 评论(0) 收藏 编辑 取消置顶 删除 目录(?)[+] 首先来看一下C/C++中怎么创建Java对象:在JNIEnv中有两种方法是用来创建Java对象的: 第一种方法: jobject  NewObject(jclass clazz  , jmethodID methodID, ....):
jni中数据类型的转换问题
此文以c++为例(在jni中c++和c的写法有细微差异),这里我们将java层的string类型需要转换成C++识别的类型。看下面这段代码: JNIEXPORT void JNICALL Java_com_yunjian_ThirdParty_ThirdPartyManager_JoinGameNumberMK(JNIEnv *env,jobject thiz, jstring nIndexID
Android C++向java传递不定长且不同类型的参数
1、c/c++和java之间的通信经常通过jni来实时传递参数,但是由于参数不固定或者参数类型很多需要一个合适的方法来传递。 2、这里有个实例,记录以备用,头文件 /* * jni_tbox_observer.h * */ #ifndef JNI_TBOX_OBSERVER_H_ #define JNI_TBOX_OBSERVER_H_ #include #include "jni
JNI/NDK开发指南(三)——JNI数据类型及与Java数据类型的映射关系
当我们在调用一个Java native方法的时候,方法中的参数是如何传递给C/C++本地函数中的呢?Java方法中的参数与C/C++函数中的参数,它们之间是怎么转换的呢?我猜你应该也有相关的疑虑吧,咱们先来看一个例子,还是以HelloWorld为例: HelloWorld.java: package com.study.jnilearn; class MyClass {} public
JNI中的使用把java中字符串转变为c中char*
在把java中的String类型传入到c语言的方法时要进行转换 //此方法可能有点差异    char*   Jstring2CStr(JNIEnv*   env,   jstring   jstr){      char*   rtn   =   NULL;       //获取String的class对象      jclass   clsstring   =   (*env
JNI学习--Java和C、C++之间的数据类型映射之string
本文主要的内容来源于Java Native Interface: Programmer's Guide and Specification中的第三章的内容。可通过http://java.sun.com/docs/books/jni/下载该书。 如在编译过程遇到问题,可参考http://blog.csdn.net/bjutstar/article/details/7383317 开发
JNI中jstring类型与c语言中的字符串的转换
 java与C中的各种数据类型的传递是JNI的主要内容,其中字符串的传递相对其它基本类型的传递稍微困难些,在JNI中经常用到。自定义对象的传递实际和String的传递类似。从网上找到的片断代码,改了一些内容。static jstring stoJstring(JNIEnv* env, const char* pat){       jclass strClass = (*env)->FindCla