使用 JNA 访问包含多个类的 DLL 方法

2024-03-18

我是使用 JNA 从 Java 访问 DLL 的新手,所以如果这对每个人来说都是显而易见的,请原谅我!我需要从 DLL(用 VB 编写)中的类访问方法,并且不能通过仅加载库来完成此操作,因为我看到如何访问其中的类,即该 DLL 名为 CDrawControl.dll,但我需要访问的 DLL 中的类是 DrawCtl。所以我需要获取 DrawCtl 类的实例。 总而言之,如何使用 JNA 访问 DLL 中的这个方法?

IE。 CDrawControl.DrawCtl.SaveFile()

我可能缺少一些非常简单的东西。

public class ReadDLL {
    public interface ChemDrawCtl12 extends Library {
    CDrawControl INSTANCE = (CDrawControl) Native.loadLibrary(
            (Platform.isWindows() ? "CDrawControl" : "CDrawCtl12LinuxPort"),
            CDrawControl.class);

    void DrawCtl.SaveAs(); // this is wrong but shows what I am trying to do!!
}

您很可能需要使用 COM 包装器,尝试 JACOB 或 com4j。这些项目可以扫描接口定义文件并生成相应的Java对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JNA 访问包含多个类的 DLL 方法 的相关文章

随机推荐

  • Flash 源代码控制 - 最佳实践

    我现在正在开发一个 Flash 项目 我不得不迫使设计人员使用我们的源代码控制存储库 SVN 来帮助管理和跟踪项目 让他完全接受源代码控制的好处是一场艰苦的战斗 但它正在到来 除了我是唯一一个参与 Flash 项目的项目之外 我以前从未在
  • 无法创建目录 /home/hadoop/hadoopinfra/hdfs/namenode/current

    我收到错误 Cannot create directory home hadoop hadoopinfra hdfs namenode current 尝试在我的本地 Mac 上安装 hadoop 时 这可能是什么原因 仅供参考 我将我的
  • 更新嵌套字典中的值 - Python

    我创建了一个字典 如下所示 gP dict fromkeys range 6 a None b None c None d None 现在 当我尝试修改一个值时 gP 0 a 1 由于某种原因 所有的值a 不管它们属于哪个键 更改为1 如下
  • 为什么我的 UDP 广播失败?

    我正在尝试发送 UDP 广播 但wireshark 没有报告任何流量 这是执行发送的代码片段 void SendBroadcast String ip 255 255 255 255 int port 30718 String messag
  • 在 shell 脚本中扩展变量

    我有一个需要循环的查询 query select dbserver as server while read dbserver username password dbname type do mysql h dbserver u user
  • 如何使用 VBA 将数据从关闭的工作簿(保持关闭状态)复制到主工作簿中?

    我需要使用 VBA 将数据从关闭的工作簿复制到主工作簿中 而不打开它们 I use Workbooks Open从 4 6 个文件开始 每个需要打开的文件都会大大减慢复制操作的速度 我需要高效的 VBA 代码来复制数据 而无需打开每个文件
  • Azure 存储非经典 (V2) - 如何配置自定义域

    在新的 Azure 门户中 有 2 个存储帐户 非经典帐户和经典帐户 因为我认为经典就是旧版本 所以我选择非经典 问题是 我无法在新门户上配置自定义域 它将我重定向到旧的 azure 门户 manage windowszuare com 问
  • 隐藏包中的模块导入

    我有一个小包 有一些依赖项 例如 pandas 和 gensim 文件结构是这样的 package init py agg clean py In the init py文件 我有import agg clean所以我能够以链式方式访问这些
  • 嵌入式 Python 应用程序中 Py_Finalize 期间发生致命错误

    感谢您的帮助 这个问题的变体已经被问过很多次 但我还没有找到完整的答案 我正在使用 MS MFC 类将嵌入式 Python 3 4 2 添加到用 C 编写的现有模拟器工具中 该应用程序是多线程的 以便用户可以执行Python脚本并与模拟器系
  • 列出 pyspark 中加载的所有其他 jar

    我想查看我的 Spark 上下文正在使用的罐子 我在Scala中找到了代码 spark shell jars master spark datasci 7077 jars opt jars xgboost4j spark 0 7 jar w
  • CFBundleShortVersionString 必须是最多三个非负整数的以句点分隔的列表

    将我的应用程序提交到应用程序商店时 我收到此错误 这是我的 info plist 文件中的相关部分
  • 神经网络需要多少个纪元来学习平方? (包括测试结果)

    好吧 首先我要说的是 我很清楚这取决于很多因素 我正在向有经验的人寻求一些一般准则 我的目标是not制作一个可以为我计算数字平方的神经网络 但我认为这将是一个很好的实验 看看我是否正确实现了反向传播算法 这看起来是个好主意吗 无论如何 我担
  • 多模块 Maven 项目中的 log4j

    如何在多模块 Maven 项目中实现 log4j 我是否将 log4j properties 文件添加到每个子模块的 src main resources 目录中 如果是这样 我是否必须为每个文件附加器指定不同的输出文件 或者有没有一种方法
  • db2 查询时间戳数据类型的奇怪行为

    我想查询 db2 中的时间戳数据类型 我在下面写了查询 Select from sample where LASTMODIFIEDDATE timestamp 2012 04 03 07 59 50 我没有得到上述查询的任何结果 然后我尝试
  • JFreeChart - Java 堆空间问题

    我是第一次使用 JFreeChart 并且使用 TimeSeriesCollection 创建 TimeSeriesChart 我的数据库查询结果集就是全部 大约1000条记录 我在用org jfree date time Minute M
  • 如何为 CMake 构建过程本身添加 add_custom_command() ?

    有什么方法可以执行与 add custom command 等效的操作 当某个文件更改时运行外部脚本 但对于应该在 CMake 脚本执行本身期间运行的内容 即 用于依赖图生成 我们将源代码文件分为多个子库 并且有一些配置文件列出了哪个源文件
  • 如何通过 Plotly 从 Dash 中的回调函数访问 cookie?

    我有一个简单的 Dash 回调函数 如下所示 app callback dash dependencies Output test output children dash dependencies Input test input val
  • WPF MVVM 代码背后的最佳实践

    我是一名使用 MVVM 模式通过 WPF 学习 C 的学生 最近 我一直在研究我的应用程序的艺术 自定义启动屏幕 当我不希望它关闭时 它不应该关闭 我一直在网上搜索一种无需后台代码即可完成此操作的好方法 不幸的是 几天后我仍然没有找到令人满
  • java继承问题-必须在父类中创建空构造函数

    我在 netbeans ubuntu java 标准项目上编程 测试准备 当我创建 AccountStudent java 时出现错误 账户 java public abstract class Account protected doub
  • 使用 JNA 访问包含多个类的 DLL 方法

    我是使用 JNA 从 Java 访问 DLL 的新手 所以如果这对每个人来说都是显而易见的 请原谅我 我需要从 DLL 用 VB 编写 中的类访问方法 并且不能通过仅加载库来完成此操作 因为我看到如何访问其中的类 即该 DLL 名为 CDr