2010-04-16 21 views
2

我目前正在将JNI功能添加到传统的delphi应用程序中。在单线程环境中,一切正常,但只要我进入多线程环境,事情就会变得多毛。我的问题是调用JavaVM^.AttachCurrentThread(JavaVM,@JEnv,nil);返回0,但将JEnv指针置为零。我不知道为什么jvm.dll应该返回一个NULL指针。JNI AttachCurrentThread NULLs jenv

有什么我失踪?

预先感谢您 - damg

PS:
*环境:WinXP的+ JDK 1.6
*使用JNI.pas从http://www.pacifier.com/~mmead/jni/delphi/

回答

2

好吧,我已经找到了问题。我传递了一个指向TJNIEnv的指针,而不是PJNIEnv。编译器没有进行类型检查,因此失败了。