如何从jna或其他库访问vb.net本机dll文件的类和方法
发布时间:2020-12-17 07:27:16 所属栏目:百科 来源:网络整理
导读:是)我有的 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 Lib
是)我有的
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()); } } } 这段代码正在运行. 我想要的是 b)如何引用{VertexFX Backoffice API} Dll,然后定义类型为CVertexFXBOAPI类的Object,之后调用方法Object.SetLoginInfo和Object.Login 谢谢 解决方法
Yo可以通过JNI使用共享库中的本机代码. JNI提供了Java和代码之间的桥梁.但是,您必须确保为本机例程保留命名约定.
在你的情况下(你想要调用本机代码的DLL)你可以通过JNI包装器来编写代码.这样,您可以保留DLL原样. 看看这里的示例代码,其中: http://jnicookbook.owsiak.org/recipe-No-018/ 这不是您正在寻找的(因为代码适用于macOS / Linux),但架构将非常相似. 你的JNI包装器(从Java调用) – 这将是一个本机代码 – 将加载你已经拥有的库(一个在其他人生成的DLL内).然后,您需要从该DLL调用一个函数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |