用JNI实现java调用c++的dll,java传对象给c++,c++收到后用socket发给server,c++的另一个线程监听,收到server的responese,调用java的方法,传对象给java。
问题是c++的监听线程如何调用java的方法,因为看JNI的资料说,JNIEnv不能在c++的线程间共享,那么c++的监听线程如何得到正确的JNIEnv

解决方案 »

  1.   

    给我一份代码,我C++还可以,。帮你看看。
    [email protected]
    顺便把分都给我算了:) 嘿嘿~~
      

  2.   

    JNIEXPORT jboolean JNICALL Java_Proxy_sendRequest
      (JNIEnv *env, jclass clazz,jobject client, jobject request){
        send(request);
    }
    sendRes(cRes){
    将new一个java的response对象,将cRes的信息设置到response中,调用client的receive (response)
    问题是new response对象时需要JNIEnv ,因为这个方法是c++的另一个线程调用,所以上面方法中的JNIEnv 不能在这里用,关键是怎么得到正确的JNIEnv 
    }
    client,request是java传给c++的对象,client有receive(response)接收response对象
      

  3.   

    Sorry , 才看到据我所了解,不会出现这样的问题吧,用临界区就可以吧。
    你还是发我代码吧,要不我很难测试。