开发者

JNI AttachCurrentThread NULLs the jenv

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

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜