JNI AttachCurrentThread обнуляет Jenv - PullRequest
       7

JNI AttachCurrentThread обнуляет Jenv

2 голосов
/ 16 апреля 2010

Я сейчас нахожусь в процессе добавления функциональности JNI в устаревшее приложение Delphi. В однопоточной среде все работает нормально, но как только я перехожу в многопоточную среду, все становится волосатым.

Моя проблема заключается в том, что вызов JavaVM ^ .AttachCurrentThread (JavaVM, @JEnv, nil); возвращает 0, но устанавливает указатель JEnv на ноль. Я понятия не имею, почему jvm.dll должен возвращать нулевой указатель.

Есть ли что-то, чего мне не хватает?

Спасибо заранее - чёрт

PS:
* Среда: WinXP + JDK 1.6
* Использование JNI.pas из http://www.pacifier.com/~mmead/jni/delphi/

1 Ответ

2 голосов
/ 16 апреля 2010

Хорошо, я нашел проблему. Я передавал указатель на TJNIEnv, а не на упакованный PJNIEnv. Компилятор не произвел проверку типов, и поэтому не удалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...