我目前正在将JNI功能添加到旧版delphi应用程序中。在单线程环境中,一切正常,但是一旦我进入多线程环境,事情就开始变得繁琐。
我的问题是调用JavaVM ^ .AttachCurrentThread(JavaVM,@JEnv,nil);返回0,但将JEnv指针置于nil。我不知道为什么jvm.dll应该返回NULL指针。
我有什么想念的吗?
先感谢您
-damg
PS:
*环境:WinXP + JDK 1.6
*从http://www.pacifier.com/~mmead/jni/delphi/使用JNI.pas
最佳答案
好的,我发现了问题。我正在传递指向TJNIEnv而不是打包的PJNIEnv的指针。编译器没有进行类型检查,因此失败了。