繁体   English   中英

在JNI创建的dll中使用dll的问题

[英]Problems with using a dll in a JNI-created dll

我正在一个Java项目中,我必须使用第三方dll(假设abc.dll)。 因此,我使用JNI创建了本地头文件。

然后,我在vs2005(典型的win32应用程序)上创建了一个dll项目,并添加了JNI创建的头文件。 我为该项目选择了clr旧语法支持,并添加了abc.dll作为对我的项目的引用。

到目前为止,一切正常。 这是问题所在。 我使用abc.dll中的某些方法实现了头文件中定义的方法。 abc.dll有一个名为“ abc”的类,这就是我的工作:

abc *abcObj = new abc(); abcObj->callSomeMethod();

我从解决方案开始构建,一切正常。 但是,当我运行Java程序时,我从JVM中收到一条错误消息,告知本机代码已损坏?!?! 我调试了它,问题出在new()中。 它根本无法实例化abcObj。

然后我尝试使用该abc.dll的C ++应用程序。 有效。

我认为JNI或该托管/非托管产品一定存在问题。 我没有真正的c / c ++经验,所以我不太了解(至少我现在没有时间了解)。 我唯一想做的就是使用第三方dll创建包装dll,并在我的Java应用程序中使用包装dll。

任何帮助将不胜感激。

提前致谢...

-海达尔

编辑:我有我的第三方dll所需的所有dll。

我已经解决了问题。 问题是我将项目创建为Win32应用程序,然后选择dll。 我创建了一个clr应用程序,一切顺利。 我遵循了这里的指示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM