【问题标题】:Vb.net DLL method not visibleVb.net DLL 方法不可见
【发布时间】:2014-12-29 16:57:48
【问题描述】:

我用 Visual Basic Express 创建了一个非常简单的 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”等工具时,我的函数不可见。

所以我的问题是:我怎样才能使这个函数可调用和可见??

谢谢。 文森特。

【问题讨论】:

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


【解决方案1】:

就像一些 cmets 指出的那样:

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

为了区分原生 dll 和托管 dll,您可以使用例如工具之一dumpbincorflags;第一次发货,例如Visual Studio,第二个带有例如最近的 Microsoft SDK。

在有问题的托管 dll 上调用 dumpbin /dependents 将显示来自 mscoree.dll 的依赖关系。

在有问题的本机 dll 上调用 corflags 将显示错误(例如 The specified file does not have a valid managed header

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 2010-09-18
    相关资源
    最近更新 更多