【发布时间】:2012-07-25 10:29:01
【问题描述】:
我试图在 c# 中使用外部 .dll 文件编码,在我的 Java 应用程序中,我对 dll 的了解是它包含我们可以使用的函数的接口,我可以将 dll 加载到我的 java 应用程序中,但是我怎么能使用里面的接口吗?我不知道 JNI 在这种情况下如何提供帮助。请帮忙。
【问题讨论】:
-
JNI 仅适用于本机库,不适用于托管代码。
我试图在 c# 中使用外部 .dll 文件编码,在我的 Java 应用程序中,我对 dll 的了解是它包含我们可以使用的函数的接口,我可以将 dll 加载到我的 java 应用程序中,但是我怎么能使用里面的接口吗?我不知道 JNI 在这种情况下如何提供帮助。请帮忙。
【问题讨论】:
我怀疑您需要使用 Java/COM 桥接器,例如 JACOB 或 Java Native Access(您可能必须编写一个桥接器,因为 JNA 用于 native 访问仅)。
更多详情请见this SO answer。
【讨论】:
您可以使用Robert Giesecke 编写的项目模板从您的C# DLL 创建本机导出。这允许您在 C# DLL 中创建本机 C 风格的 API 导出,并从 Java 或几乎任何其他语言调用它们。向下滚动到非托管导出库文件的页面底部。
或者,您可以使用ComVisible 创建一个 COM 类并从 Java 访问它。
【讨论】: