我希望能够从 Excel VBA 工作表中的 Java 项目执行代码。在 SO 的其他地方,我发现了 IKVM,它是 Java 的 .NET 实现,允许将 .jar 转换为 .dll。我希望这可以让我从 VBA 编辑器中的 .jar 访问类/方法,但我在这样做时遇到了麻烦。
我曾尝试在 VBA 中使用 declare 语句(在许多不同的排列中,试图使其工作),但最常见的错误是指 .DLL 中的入口点。
我也尝试将 .DLL 注册为 Excel 中的引用,但它给出了样板错误并且没有注册它。
作为参考,我一直在使用以下类对其进行测试,然后再对整个项目进行测试:
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 文件有一些依赖项)。
如果我能让它适用于这个示例测试,我就能让它适用于整个项目。