gpt4 book ai didi

java - 在 VBA/Excel 中使用 IKVM 编译的 Java .dll?

转载 作者:行者123 更新时间:2023-12-02 08:13:36 27 4
gpt4 key购买 nike

我希望能够从 Excel VBA 工作表内的 Java 项目执行代码。在 SO 的其他地方,我发现了 IKVM,它是 Java 的 .NET 实现,允许将 .jar 转换为 .dll。我希望这能让我从 VBA 编辑器内的 .jar 访问类/方法,但我在这样做时遇到了困难。

我尝试过在 VBA 中使用声明语句(以许多不同的排列,试图使其工作),但最常见的错误是指 .DLL 中的入口点。

我还尝试在 Excel 中将 .DLL 注册为引用,但它会出现样板错误并且不会注册它。

作为引用,在对整个项目进行测试之前,我一直使用以下类对其进行测试:

public class IKVMTest {
public static void print(String s) {
System.out.println(s);
}
}

该类由 Eclipse 编译并导出到 IKVMTest.jar 中。此时,我使用 ikvmc -target:library IKVMTest.jar 来接收 IKVMTest.dll。为了简单起见,这个 .dll 和我正在测试的 Excel 工作表被转储到 IKVM bin 文件夹中(因为 IKVM .dll 文件存在一些依赖项)。

如果我能让它适用于这个示例测试,我就能让它适用于整个项目。

最佳答案

您是否尝试过使 .NET 程序集 COM 可见,以便可以使用 VBA 实例化它?

对 IKVM 代码生成的类和方法使用 [ComVisible(true)] 可能会使其作为 COM 对象对 VBA 应用程序可见。

看看这里作为引用:http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.comvisibleattribute.aspx#Y1600

此外,请查看此处:如何使用 COM Interop 在 VBA 中调用 .net 程序集 http://blogs.msdn.com/b/smondal/archive/2009/08/31/how-to-call-a-net-assembly-in-vba-using-com-interop.aspx

关于java - 在 VBA/Excel 中使用 IKVM 编译的 Java .dll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6875484/

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