Vb.net DLL方法不可见

时间:2014-12-29 16:57:48

标签: java vb.net dll jna dependency-walker

我用Visual Basic Express创建了一个VB.net DLL非常简单,这是我的代码:

Public Class Class1
  Public Function SayHello() As String
    Return "Hello"
  End Function
End Class    
  • 我想在JAVA中使用这个带有JNA的DLL,但Eclipse比我说的程序" SayHello"在我的DLL中不存在。
  • 当我使用" Dependency Walker"等工具时,我的功能不可见。

所以我的问题是:如何让这个函数可以调用并且可见?

感谢。 文森特。

1 个答案:

答案 0 :(得分:0)

如同一些评论所示:

JNA只能为原生 PE32 / PE32 + dll中的方法提供“Java绑定”(即允许您从Java调用方法)。相比之下,VB.Net dll总是托管 dll。

要区分本机和托管dll,您可以使用例如其中一个工具dumpbincorflags;第一次发货,例如Visual Studio,第二个附带例如最近的Microsoft SDK。

在受质疑的托管dll 上调用dumpbin /dependents将显示mscoree.dll的依赖关系。

在受质疑的原生dll 上调用corflags会显示错误(s.th.赞The specified file does not have a valid managed header

此信息来自Is this DLL managed or unmanaged?,但我也已经过验证。