Re: [Ikvm-developers] Unable to Expose Java Methods to Excel VBA
Brought to you by:
jfrijters
|
From: Colin C. <te...@gm...> - 2015-06-02 07:55:15
|
Hi Jereon, Thanks for the reply. Yes, I have followed the steps in the link provided, but still not able to see the java methods from excel vba. In your opinion, do you think signing the assembly with ildasm/ilasm will affect the DLL? Cheers, Colin From: Jeroen Frijters [mailto:je...@su...] Sent: Tuesday, 2 June, 2015 3:46 PM To: Colin Chin; ikv...@li... Subject: RE: [Ikvm-developers] Unable to Expose Java Methods to Excel VBA Hi, Have you tried following these steps: http://stackoverflow.com/questions/14967080/how-do-i-make-a-dll-created-with -ikvm-com-visible Second, why are you using ildasm/ilasm to strong name sign the assembly? You can use the ikvmc -keyfile:<keyfilename> option to directly sign the assembly. Regards, Jeroen From: Colin Chin [mailto:te...@gm...] Sent: Tuesday, June 2, 2015 4:58 To: ikv...@li... <mailto:ikv...@li...> Subject: [Ikvm-developers] Unable to Expose Java Methods to Excel VBA Hi, I was trying to call Java methods from with Excel VBA. I tried one of the sample, and here is my code: Assembly.java import cli.System.Runtime.InteropServices.*; @cli.System.Runtime.InteropServices.ComVisibleAttribute.Annotation(true) interface Iassembly { public int method1(int x,int y); } @ClassInterfaceAttribute.Annotation(ClassInterfaceType.__Enum.AutoDual) public class assembly implements Iassembly { public int method1(int x, int y) { return x + y; } } And these are the steps I have followed to use IKVM to convert the java class to DLL: 1. javac -cp mscorlib.jar;. assembly.java 2. ikvmc -out:assembly.dll assembly.class -r:mscorlib.dll 3. tlbexp assembly.dll I then signed the DLL with a strong name by doing these: 1. ildasm /all /out=assembly.il assembly.dll 2. sn -k mykey.snk 3. ilasm /dll /key=mykey.snk assembly.il Then, I do the type library export: 1. tlbexp assembly.dll 2. regasm /codebase assembly.dll /tlb Everything runs well, and when I add reference in excel VBA, I can see "assembly" is there. But when I use object browser to see the methods, nothing is exposed, I only see the one <global> word there. Can someone please tell me what have I done wrong in my java code? Anything I need to add to expose my methods to be usable in excel VBA? Many thanks. Cheers, Colin |