我目前正在将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的指针。编译器没有进行类型检查,因此失败了。

09-29 22:20