2014-12-29 100 views
0

我創建了一個VB.net DLL使用Visual Basic速成很簡單,這是我的代碼:Vb.net DLL方法不可見

Public Class Class1 
    Public Function SayHello() As String 
    Return "Hello" 
    End Function 
End Class  
  • 我想用從Java這個DLL與JNA ,但是Eclipse比我的DLL中不存在的程序「SayHello」要好。
  • 當我使用像「Dependency Walker」這樣的工具時,我的功能不可見。

所以我的問題:我怎樣才能使這個功能可調用和可見?

謝謝。文森特。

+0

JNA只能訪問C++ dll。你將不得不圍繞VBNet庫構建一個C++包裝器。 – ortis

+0

可能重複[調用託管代碼從非託管C](http://stackoverflow.com/questions/10821109/calling-managed-code-from-unmanaged-c) – xxbbcc

+0

可能重複的[我如何調用.NET代碼Java的?](http://stackoverflow.com/questions/283679/how-can-i-call-net-code-from-java) – Mark

回答

0

像一些評論指出:

JNA只能夠在本地 PE32/PE32 +的DLL的方法提供「Java綁定」(即可以讓你從Java調用的方法)。 VB.Net DLL總是對比管理 DLL。

要區分本機和受管dll,您可以使用其中一個工具dumpbincorflags;第一次運送,例如Visual Studio,第二個自帶例如最近的Microsoft SDKs。

調用dumpbin /dependents對提問被管理的dll將顯示從mscoree.dll的依賴關係。

調用上的質疑機DLLcorflags會顯示錯誤(某事物一樣The specified file does not have a valid managed header

這個信息是從Is this DLL managed or unmanaged?採取但我已經被驗證了。