网上很多!用google,baidu,。。
解决方案 »
- 在线程中执行一个存储过程(oracle),运行一段时间之后就会报错
- Java Socket中time_wait问题。
- ehcache在同步对象时发生错误
- java附件上传问题
- 求高手解决!不知道是出了什么原因?
- who来点拨下,ajax里面如何得到acegi里面的用户信息?
- 通过超链接 提交表单
- 大家用什么工具比较两个Class文件
- 关于java环境配置的 问题~~~!!谁能帮帮忙?
- 搜集JAVA访问连接数据库的方式(jdbc-odbc,jdbc,jndi...),即刻结分!!
- 关于eclipse-SDK-3.1-win32+lomboz-emf-gef-jem-3.1RC1配置
- JBuilderX+weblogic部署webservice时碰到的问题,希望大家帮我看看
将.h引入到C/C++编译器,生成.dll,将.dll引入Java根目录------------------
C/C++结构如下:
struct {
long id;
int age;
}Struct;
------------------
package javabeans;public class MyStruct {
private Struct struct;
static{
//加载.dll文件,无需扩展名
System.loadLibrary("struct_test2");
}
public native void setStruct(Struct struct);
public native Struct getStruct();
public void setStruct_J(Struct struct){
this.struct = struct;
}
public Struct getStruct_J(){
return this.struct;
}
}
----------------
//与C/C++对应的Java类如下:
package javabeans;public class Struct {
public long id;
public int age;
public native static Struct newStruct(long id, int age);
}
-----------------
/* DO NOT EDIT THIS FILE - it is machine generated */
#include "jni.h"
/* Header for class javabeans_MyStruct */#ifndef _Included_javabeans_MyStruct
#define _Included_javabeans_MyStruct
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: javabeans_MyStruct
* Method: setStruct
* Signature: (Ljavabeans/Struct;)V
*/
JNIEXPORT void JNICALL Java_javabeans_MyStruct_setStruct
(JNIEnv *, jobject, jobject);/*
* Class: javabeans_MyStruct
* Method: getStruct
* Signature: ()Ljavabeans/Struct;
*/
JNIEXPORT jobject JNICALL Java_javabeans_MyStruct_getStruct
(JNIEnv *, jobject);#ifdef __cplusplus
}
#endif
#endif
-----------------
/* DO NOT EDIT THIS FILE - it is machine generated */
#include "jni.h"
/* Header for class javabeans_Struct */#ifndef _Included_javabeans_Struct
#define _Included_javabeans_Struct
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: javabeans_Struct
* Method: newStruct
* Signature: (JI)Ljavabeans/Struct;
*/
JNIEXPORT jobject JNICALL Java_javabeans_Struct_newStruct
(JNIEnv *, jclass, jlong, jint);#ifdef __cplusplus
}
#endif
#endif
-----------------------
#include "javabeans_MyStruct.h"struct {
long id;
int age;
}Struct;JNIEXPORT void JNICALL Java_javabeans_MyStruct_setStruct
(JNIEnv *env, jobject obj_this, jobject jobj_mystruct_struct){
jclass jc_mystruct = env->FindClass("javabeans/MyStruct");
jfieldID jf_mystruct_struct = env->GetFieldID(jc_mystruct, "struct", "Ljavabeans/Struct;"); env->SetObjectField(obj_this, jf_mystruct_struct, jobj_mystruct_struct);
}JNIEXPORT jobject JNICALL Java_javabeans_MyStruct_getStruct
(JNIEnv *env, jobject obj_this){
jclass jc_mystruct = env->FindClass("javabeans/MyStruct");
jfieldID jf_mystruct_struct = env->GetFieldID(jc_mystruct, "struct", "Ljavabeans/Struct;"); jobject jobj_struct = env->GetObjectField(obj_this, jf_mystruct_struct); return jobj_struct;
}
-----------------------------
#include "javabeans_Struct.h"JNIEXPORT jobject JNICALL Java_javabeans_Struct_newStruct
(JNIEnv *env, jclass jc_this, jlong jl_id, jint ji_age){
jmethodID jm_init = env->GetMethodID(jc_this, "<init>", "()V");
jobject jobj_this = env->NewObject(jc_this, jm_init);
jfieldID jf_id = env->GetFieldID(jc_this, "id", "J");
jfieldID jf_age = env->GetFieldID(jc_this, "age", "I"); env->SetLongField(jobj_this, jf_id, jl_id);
env->SetIntField(jobj_this, jf_age, ji_age);
return jobj_this;
}
------------------------