开发者

JNI AttachCurrentThread NULLs the jenv

开发者 https://www.devze.com 2022-12-26 21:15 出处:网络
I\'m currently in the process of adding JNI functionality into a legacy delphi app. In a single-threaded environment everything works fine, but as soon as I move into multi-threaded environment, thing

I'm currently in the process of adding JNI functionality into a legacy delphi app. In a single-threaded environment everything works fine, but as soon as I move into multi-threaded environment, things start to bec开发者_开发问答ome hairy.

My problem is that calling JavaVM^.AttachCurrentThread( JavaVM, @JEnv, nil ); returns 0, but puts the JEnv pointer to nil. I have no idea why jvm.dll should return a NULL pointer.

Is there anything I am missing?

Thank you in advance -- damg

PS:

* Environment: WinXP + JDK 1.6

* Using JNI.pas from http://www.pacifier.com/~mmead/jni/delphi/


Ok, I've found the problem. I was passing a pointer to TJNIEnv and not to the packed PJNIEnv. The compiler did no typechecking and thus it failed.

0

精彩评论

暂无评论...
验证码 换一张
取 消