【发布时间】:2017-12-18 11:22:48
【问题描述】:
我必须将一些用作 DLL 的 VB6 工具翻译成另一种语言。 由于我对 C++ 不是很熟悉,并且有从 Java 应用程序构建 DLL 的选项,所以我决定用 Java 编写。
问题: 在原始的 VB6 代码中有一些函数,它们通过引用传递参数。 由于这个 DLL 被用作另一个工具的接口,因此对它的 DLL 进行了一些调用,这些调用也通过引用传递了一些参数。
我找到了几种传递参数的方法,因此它们是可变的,但它们都不适合我的问题,因为环境将方法签名保持原样是完美的。
知道如何在不更改方法签名的情况下解决这个问题吗?
PS:大多数 byRef 传递的参数都是字符串。
【问题讨论】:
-
也许一些代码示例会有助于更好地理解
-
请在您的问题中说明您使用哪些工具来调用相关 DLL 如果您是在谈论当您的工具用作 DLL 时通过引用接收参数,请还要指定您使用哪些工具从 java 创建 DLL,因为任何答案都取决于您用于这些任务的具体技术和库。
-
我正在尝试为 Java 中的 C# 程序创建一个 DLL。由于我对 C++ 不是很熟悉,并且看到可以通过 JNI 或 JNA 做一些本机的事情,所以我决定用 Java 来做。 JNA 非常适合调用其他 DLL 的函数并将所有这些函数包装到 DLL 中。我唯一的问题是参考参数。到目前为止,我还无法将 C# 中的参数传递给 lib 中的 Java 方法并在其中更改它的值。这对我来说是 Java 原生的唯一问题。仍在寻找解决方法。