我有什么
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
谢谢
最佳答案
您可以通过 JNI 使用共享库中的 native 代码。 JNI 在 Java 和您的代码之间提供桥梁。但是,您必须确保保持 native 例程的命名约定。
在您的情况下(您拥有带有要调用的 native 代码的 DLL),您可以通过将对代码进行编码的 JNI 包装器。这样,您就可以保留 DLL 原样。
在此处查看示例代码,其中:
http://jnicookbook.owsiak.org/recipe-No-018/
这不是您要查找的内容(因为代码是针对 macOS/Linux 的),但架构将非常相似。
您的 JNI 包装器(从 Java 调用)——这将是一个 native 代码——将加载您已有的库(一个位于其他人生成的 DLL 中的库)。然后,您需要从该 DLL 调用一个函数。
关于java - 如何从 jna 或其他库访问 vb.net 原生 dll 文件的类和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43270843/