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

时间:2011-07-29 15:31:24

标签: java excel vba dll ikvm

我希望能够从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文件有一些依赖性)。

如果我能让它适用于此样本测试,我可以让它在整个项目中运行。

1 个答案:

答案 0 :(得分:2)

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

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

请点击此处查看: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