我目前正在将JNI功能添加到遗留的delphi应用程序中。在单线程环境中,一切工作正常,但是一旦我进入多线程环境,事情就开始变得复杂起来。
我的问题是调用JavaVM^.AttachCurrentThread( JavaVM,@ JEnv,nil );返回0,但将JEnv指针设置为nil。我不知道为什么jvm.dll应该返回空指针。
我是不是遗漏了什么?
提前谢谢你--见鬼
PS:
*环境: WinXP +JDK1.6
*从http://www.pacifier.com/~mmead/jni/delphi/使用JNI.pas
发布于 2010-04-16 20:12:25
好了,我找到问题所在了。我传递的是一个指向TJNIEnv而不是打包的PJNIEnv的指针。编译器没有进行类型检查,因此失败了。
https://stackoverflow.com/questions/2651964
复制相似问题