在java中使用C# dll [重复]

Posted

技术标签:

【中文标题】在java中使用C# dll [重复]【英文标题】:Using C# dll in java [duplicate] 【发布时间】:2012-07-25 10:29:01 【问题描述】:

我试图在 c# 中使用外部 .dll 文件编码,在我的 Java 应用程序中,我对 dll 的了解是它包含我们可以使用的函数的接口,我可以将 dll 加载到我的 java 应用程序中,但是我怎么能使用里面的接口吗?我不知道 JNI 在这种情况下如何提供帮助。请帮忙。

【问题讨论】:

JNI 仅适用于本机库,不适用于托管代码。 【参考方案1】:

我怀疑您需要使用 Java/COM 桥接器,例如 JACOB 或 Java Native Access(您可能必须编写一个桥接器,因为 JNA 用于 native 访问仅)。

更多详情请见this SO answer。

【讨论】:

我们可以使用 JNA java 7 而不是 6 对吗?【参考方案2】:

您可以使用Robert Giesecke 编写的项目模板从您的C# DLL 创建本机导出。这允许您在 C# DLL 中创建本机 C 风格的 API 导出,并从 Java 或几乎任何其他语言调用它们。向下滚动到非托管导出库文件的页面底部。

或者,您可以使用ComVisible 创建一个 COM 类并从 Java 访问它。

【讨论】:

我应该将使用 ComVisible 的类放在 dll 文件中,然后在 java 应用程序中使用它吗?如果是,我应该如何导入并调用它? 是的。这是an example。您还需要将 DLL 标记为 COM Visible。阅读this question 了解更多信息。 Brian Agnew 的回答涵盖了在 Java 中使用 COM。

以上是关于在java中使用C# dll [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在c#中使用C++ dll导出类[重复]

C#编组来自C++ DLL的无符号字符返回值[重复]

C#将所需的DLL放在输出根目录以外的地方[重复]

如何导出 C# dll 方法/函数以在 C++ 中使用它 [重复]

C#将dll编译成exe [重复]

列出代码中 msvcrXXX.dll 的版本 [重复]