如何从java程序调用c#dll 我有一个C语言的DLL,需要在java中调用。我看到有一种方法使用JNI调用C++ DLL。我怎么能做一个C语言的DLL?请帮助……我找不到任何关于这个< P>的好材料。

如何从java程序调用c#dll 我有一个C语言的DLL,需要在java中调用。我看到有一种方法使用JNI调用C++ DLL。我怎么能做一个C语言的DLL?请帮助……我找不到任何关于这个< P>的好材料。,c#,java,dll,C#,Java,Dll,IKVM.NET是针对Mono和Microsoft.NET的Java实现 框架它包括以下组件: 在.NET中实现的Java虚拟机 Java类库的.NET实现 支持Java和.NET互操作性的工具 你可以用。或者您可以从C#代码创建COM程序集并使用来调用它 如果您有C#dll源代码,您需要使用,也许更好的方法是使用一些工具将其转换为Java,如 根据GrassHopper key特性解释,它可以将MSIL转换为Java bite代码。因此可以在没有c#dll源的情况下使用 检查以下内容: 如

IKVM.NET是针对Mono和Microsoft.NET的Java实现 框架它包括以下组件:

  • 在.NET中实现的Java虚拟机
  • Java类库的.NET实现
  • 支持Java和.NET互操作性的工具
你可以用。或者您可以从C#代码创建COM程序集并使用来调用它

如果您有C#dll源代码,您需要使用,也许更好的方法是使用一些工具将其转换为Java,如

根据GrassHopper key特性解释,它可以将MSIL转换为Java bite代码。因此可以在没有c#dll源的情况下使用

检查以下内容:

如果你寻找快速简单的解决方案,那么Javonet应该适合你。它是IKVM的轻型对应物,J-Integra也作为本地桥接器工作

你所要做的就是:

  • 添加Javonet.jar进行项目调用
  • 调用Javonet.addReference(“yourlib.dll”)
  • 使用您的.NET库就像它几乎是JAVA包一样
  • 示例:

    NObject obj = Javonet.New("yourDotNetClass");
    obj.invoke("YourMethod","arg1", 2);
    
    该语法不是强类型的,其工作原理类似于反射,但它可以让您以最快的速度访问任何自定义.NET代码、第三方LIB或.NET framework,因为在.NET端不需要任何更改。如果需要,还可以实现自定义强类型包装器

    我确实推荐这座桥,因为在我看来,它是最容易快速完成任务的,但其他本地桥也值得检查,因为这是这种情况下的最佳方法


    <>我会避免进入自定义JNI或COM,除非你有很多时间,你只想学习,如果你需要快速可靠的解决方案,请使用第三方的桥梁。< /P>你试过写一个C++ DLL来包装C*yDLL吗?是的,我已经研究过了。我应该使用COM吗?这是唯一可用的方法吗?我没有访问c代码的权限,我只是得到了dll。哪种方法对我来说更好?你可以同时使用JNI或J-Interop。我两个都试过了。JNI更适合我的任务。但这只是我的观点。蚱蜢可以转换成字节码MSIL,所以你不需要c代码。把它添加到答案中