Vb.net DLL方法不可见
问题描述:
我创建了一个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”这样的工具时,我的功能不可见。
所以我的问题:我怎样才能使这个功能可调用和可见?
谢谢。文森特。
答
像一些评论指出:
JNA只能够在本地 PE32/PE32 +的DLL的方法提供“Java绑定”(即可以让你从Java调用的方法)。 VB.Net DLL总是对比管理 DLL。
要区分本机和受管dll,您可以使用其中一个工具dumpbin
或corflags
;第一次运送,例如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?采取但我已经被验证了。
JNA只能访问C++ dll。你将不得不围绕VBNet库构建一个C++包装器。 – ortis
可能重复[调用托管代码从非托管C](http://*.com/questions/10821109/calling-managed-code-from-unmanaged-c) – xxbbcc
可能重复的[我如何调用.NET代码Java的?](http://*.com/questions/283679/how-can-i-call-net-code-from-java) – Mark