3,882
社区成员




jstring toJstring(JNIEnv* env, const char* pat) {
jclass strClass = env->FindClass("Ljava/lang/String;");
jmethodID ctorID =
env->GetMethodID(strClass, "<init>", "([BLjava/lang/String;)V");
jbyteArray bytes = env->NewByteArray(strlen(pat));
env->SetByteArrayRegion(bytes, 0, strlen(pat), (jbyte*)pat);
jstring encoding = env->NewStringUTF("utf-8");
return (jstring)env->NewObject(strClass, ctorID, bytes, encoding);
}
#include<iostream>
#include<dlfcn.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "ictest.h"
JNIEXPORT jint JNICALL Java_ictest_auto_1init
(JNIEnv * env, jclass obj, jint a)
{
void* handle = dlopen("/home/user/Linux/mwic.so",RTLD_LAZY);
typedef int (*auto_init)(char*,int);
dlerror();
auto_init AutoInit = (auto_init) dlsym(handle,"auto_init");
const char *dlsym_error = dlerror();
if(dlsym_error){
dlclose(handle);
return -1;
}
int i=AutoInit("/home/user/Linux/star500x",a);
return i;
}
JNIEXPORT jstring JNICALL Java_ictest_rsc_14442
(JNIEnv * env, jclass obj, jint a, jint b)
{
int step=0;
void * handle = dlopen("/home/user/Linux/mwic.so",RTLD_LAZY);
step++;
typedef int (*rsc_4442)(int,int,char*);
step++;
dlerror();
step++;
rsc_4442 Rsc4442 =(rsc_4442) dlsym(handle,"rsc_4442");
step++;
const char *dlsym_error = dlerror();
step++;
if(dlsym_error){
step++;
dlclose(handle);
step++;
}
char* password;
step++;
Rsc4442(a,b,password);
step++;
jstring jstr;
step++;
jstr = stoJstring(env,password);
step++;
return jstr;
}
jstring stoJstring(JNIEnv* env, const char* pat)
{
jclass strClass = env->FindClass("Ljava/lang/String;");
jmethodID ctorID = env->GetMethodID(strClass, "\"init\"", "([BLjava/lang/String;)V");
jbyteArray bytes = env->NewByteArray(strlen(pat));
env->SetByteArrayRegion(bytes, 0, strlen(pat), (jbyte*)pat);
jstring encoding = env->NewStringUTF("utf-8");
return (jstring)env->NewObject(strClass, ctorID, bytes, encoding);
}
/* DO NOT EDIT THIS FILE - it is machine generated */
#include "jni.h"
/* Header for class ictest */
#ifndef _Included_ictest
#define _Included_ictest
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: ictest
* Method: auto_init
* Signature: (I)I
*/
JNIEXPORT jint JNICALL Java_ictest_auto_1init
(JNIEnv *, jclass, jint);
/*
* Class: ictest
* Method: rsc_4442
* Signature: (II)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_ictest_rsc_14442
(JNIEnv *, jclass, jint, jint);
jstring stoJstring(JNIEnv* , const char*);
#ifdef __cplusplus
}
#endif
#endif