2012-07-25 112 views
1

我試圖在c#中使用外部.dll文件編碼,在我的Java應用程序中,我知道它包含的接口與我們可以使用的函數的dll,我可以將DLL加載到我的Java應用程序,但我如何使用它內的接口?我不知道JNI如何在這種情況下提供幫助。請幫助。在java中使用C#dll

+0

JNI僅適用於本機庫,不適用於託管代碼。 – 2012-07-25 10:30:16

回答

1

我懷疑你需要使用Java/COM橋如JACOB,或Java Native Access(你可能必須寫一個橋樑,因爲JNA是本地只訪問)。

請參閱this SO answer瞭解更多詳情。

+0

我們可以使用JNA java 7不是6吧? – ama 2012-07-25 11:13:29

1

您可以使用由Robert Giesecke編寫的項目模板從您的C#DLL創建本地導出。這使您可以在C#DLL中創建原生C風格API導出,並從Java或幾乎任何其他語言調用它們。向下滾動到Unmanaged Export Library文件的頁面底部。

或者,您可以使用ComVisible創建COM類並從Java訪問它。

+0

我應該把使用ComVisible的類放在dll文件中,然後在java應用程序中使用它嗎?如果是這樣,我應該如何導入並調用它? – ama 2012-07-25 10:50:30

+0

是的。這裏是[示例](http://msdn.microsoft.com/en-us/library/c3fd4a20.aspx)。您需要將該DLL標記爲COM Visible。請閱讀[此問題](http://stackoverflow.com/questions/7092553/turn-a-simple-c-sharp-dll-into-a-com-interop-component)瞭解更多信息。 Brian Agnew的回答涵蓋了在Java中使用COM。 – Polynomial 2012-07-25 10:53:20