读书人

小弟我用JNI 法由DLL返回一个jclass 值

发布时间: 2012-03-04 11:13:34 作者: rapoo

我用JNI 法由DLL返回一个jclass 值, JNIEXPORT jclass 实例化的问题.
JNIEXPORT jclass 实例化的问题.
我用JNI 法由DLL返回一个jclass 值,请问如何能把它实例化呢.


Class a = bb;

public class Dll {

public static native Class getClass(String prompt);
static {
System.loadLibrary("Dll");
}
public static void main(String[] args) {

Class aa = new aagetClass("String prompt"); //请问怎能把aa实例化执行 say()呢?
aa.say();
}


public class aa{
public String say()
{
System.out.println("is ok" );
return "2";}

}

[解决办法]
zcDll是Dll new出来的?
[解决办法]
Class aa = new aagetClass("String prompt"); //请问怎能把aa实例化执行 say()呢?
试试看
Object aa = dll.getClass("String prompt").newInstance()

Object aa = zcDll.getClass("String prompt").newInstance()
[解决办法]
Object aa = Dll.getClass("String prompt").newInstance()
[解决办法]
给你个提示:

Java code
jobject JNICALL Java_jni_StuService_getStuList         (JNIEnv *env, jclass)     {        /**************创建ArrayList 对象 start*****************/          jclass class_ArrayList=env->FindClass("java/util/ArrayList");/* 获得Java类 */          jmethodID construct=env->GetMethodID( class_ArrayList, "","()V");/* 获得构造方法 */               jobject obj_List =env->NewObject( class_ArrayList, construct, "");/* 创建java对象 */             /**************创建ArrayList 对象 end *****************/          /* 获得List的add方法 */       jmethodID list_add=env->GetMethodID(class_ArrayList,"add","(Ljava/lang/Object;)Z");           int i=0;        while(i<3){               jobject student=constructStudent(env,i);               /* 调用List 的add方法 */           env->CallObjectMethod(obj_List,list_add,student);               ++i;        }                   return obj_List;           } 

读书人网 >J2EE开发

热点推荐