В настоящее время я добавляю функциональность JNI в устаревшее приложение delphi. В однопоточной среде все работает нормально, но как только я перехожу в многопоточную среду, все начинает становиться волосатым.
Моя проблема в том, что вызов JavaVM ^.AttachCurrentThread(JavaVM, @JEnv, nil); возвращает 0, но помещает указатель JEnv в nil. Я не знаю, почему jvm.dll должен возвращать указатель NULL.
Есть ли что-то, что мне не хватает?
Спасибо заранее - damg
PS:
* Окружающая среда: WinXP + JDK 1.6
* Использование JNI.pas из http://www.pacifier.com/~mmead/jni/delphi/
Хорошо, я нашел проблему. Я передавал указатель на TJNIEnv, а не на упакованный PJNIEnv. Компилятор не выполнил проверку типов и, следовательно, не удалось.