gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 07:56:24 25 4
gpt4 key购买 nike

我正在开发一个 Java 项目,我必须在其中使用第三方 dll(比如 abc.dll)。所以我使用 JNI 创建了一个 native 头文件。

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

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

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

我从解决方案中构建,一切正常。但是当我运行我的 Java 程序时,我从 JVM 收到一个错误,告诉我 native 代码崩溃了?!?!我调试了一下,问题出在new()。它根本无法实例化 abcObj。

然后我尝试使用该 abc.dll 开发一个 C++ 应用程序。它奏效了。

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

我们将不胜感激。

提前致谢...

-海达尔

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

最佳答案

我已经解决了这个问题。问题是我将项目创建为 win32 应用程序,然后选择 dll。我创建了一个 clr 应用程序,一切顺利。我按照 here 中的说明进行操作.

关于java - 在 JNI 创建的 dll 中使用 dll 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12615824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com