我有什么
a)我使用过jna库
b)我的dll是vb.net本机dll文件
c)您可以查看此链接以获取有关dll link
我的源代码如下
界面
package com.dll.lib;
import com.sun.jna.Library;
import com.sun.jna.Native;
public interface BrowseControl extends Library {
BrowseControl instance = (BrowseControl)Native.loadLibrary("Vertex FXBOAPI10.5.9", BrowseControl.class);
}
类
package com.dll.main;
import com.dll.lib.BrowseControl;
public class MainTest {
public static void main(String[] args) {
BrowseControl control=BrowseControl.instance;
System.out.println("Brwoser: "+control.getClass());
}
}
}
此代码正常运作。
我想要什么
a)如何在java编程语言中从dll访问他们的类和方法?
b)如何引用{VertexFX Backoffice API}
Dll,然后定义类型CVertexFXBOAPI
类的对象,之后调用方法Object.SetLoginInfo
和Object.Login
由于
答案 0 :(得分:0)
Yo可以通过JNI使用共享库中的本机代码。 JNI提供了Java和代码之间的桥梁。但是,您必须确保为本机例程保留命名约定。
在你的情况下(你想要调用本机代码的DLL)你可以通过JNI包装器来编写代码。这样,您可以保留DLL原样。
在这里查看示例代码,其中:
http://jnicookbook.owsiak.org/recipe-No-018/
这不是您正在寻找的(因为代码适用于macOS / Linux),但架构将非常相似。
你的JNI包装器(从Java调用) - 这将是一个本机代码 - 将加载你已经拥有的库(一个在其他人生成的DLL内)。然后,您需要从该DLL调用一个函数。