java通过jaboc调用dll(大漠插件)遇到的坑,变参指针传参问题

本文记录了作者使用Java调用动态链接库DLL(大漠插件)时遇到的问题及解决过程,包括JNA与JACOB两种方法。在JNA调用中遇到`UnsatisfiedLinkError`,而在JACOB中成功解决了变参指针传参问题,最终实现了GetCursorPos函数。总结指出,标准DLL推荐使用JNA,非标准DLL推荐JACOB。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚接触java调用动态链接库,这几天踩了不少坑。先记录下来方便以后学习,也希望可以帮助到有需要的同志。由于第一次写博客,如果写的不好或者不详细请各位大神嘴下留情,多多包涵! 首先说下背景,我本人是魔兽世界忠实玩家,偶尔写下游戏脚本。去年一直使用按键精灵,大概使用了打半年也没有没检测到。今年突然一下被封了3个账号,按键精灵(个人版普通用户)试过各种办法,隐藏进程、加壳貌似都没有用。可能我技术太菜了吧!别问我为啥不开VIP,我会告诉你我很穷吗?最近发现魔兽会检测按键精灵进程(先启动游戏再启动按键结果一样),万般无奈只好另谋出路。偶然得知java原来也可以调用dll,然后就尝试的去玩一下。接下来等待我的是一个又一个坑等着我去跳,网上关于这块资料讲的不够细,导致花费了大量时间。今天写这篇文章也是希望能帮助正在爬坑的人。接下来进入正题,通过各种途径了解到java调用dll有那么几种方法:最底层的JNI、最方便的JNA、Jawin、.jacob、Jnative。在这里就不一 一说了。在这里给个建议吧!从使用方便角度来讲,java调用标准dll建议使用JNA,为什么说标准的dll呢?那是因为有些生成的dll并不是标准的,比如我正在使用的VB写的大漠插件(dm.dll)。com组件的话就使用jacob,没得说,一会我直接上码就知道了。首先说下我遇到的问题,以大漠获取鼠标位置为例(其他类型的下面链接可以找到例子)

一、JNA 方式测试  GetMousePointWindow函数

public class DllTest {

    public interface Dll extends StdCallLibrary {
        Dll instance = (Dll) Nat
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值