网上很多!用google,baidu,。。
解决方案 »
- 帮忙实现一简单过滤器
- 关于session丢失的问题,大家进来看看
- 关于辞职问题???
- ManyToOne单向配置(错误:object references an unsaved transient instance - save the transient instance before flushing:)
- c3p0读取clob NewProxyResultSet错误
- jdom输出的文件为什么不是utf-8?
- help!
- 请问各位,我在网上找到一段用JAVA写的CGI程序,不知道怎么用?
- MAVEN问题
- 如何实现一个用户只有自己权限才能看到的菜单 没权限的看不到
- 关于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;
}
------------------------