微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法find指定的程序MapVirtualKeyExJNAJava

我正在使用JNA,需要使用MapVirtualKeyEx函数

这是签名:

UINT WINAPI MapVirtualKeyEx( __in UINT uCode,__in UINT uMapType,__inout_opt HKL dwhkl );

有关签名的更多信息可以在这里find: http : //msdn.microsoft.com/en-us/library/ms646307(v=vs.85).aspx

我试过这个:

将Python SIGINT重置为认信号处理程序

PHP中查找Windows用户名

为什么我不能在Windows中启动一个命名的Erlang节点?

背景工具复制和粘贴

在Windows上用TortoiseSVN更改文件名大小写

int MapVirtualKeyEx (int uCode,int nMapType,int dwhkl);

但它不匹配。 我有一种感觉,这是导致问题的_inout_opt 。

我得到的错误是: The specified procedure Could not be found.

static interface User32 extends Library { public static User32 INSTANCE = (User32) Native.loadLibrary("User32",User32.class); int MapVirtualKeyEx (int uCode,int dwhkl); } private static void test(int keyCode) { int code = User32.INSTANCE.MapVirtualKeyEx(key,MAPVK_VK_TO_VSC,134809609); //The number is the keyboard ID,it's temporary. }

我还有另一个问题:是否有某种自动化的API签名转换方式,可以在JNI / JNA中使用?

Windows Phone 8上的ARM NEON程序集无法正常工作

Xampp-MysqL – “引擎中不存在表”#1932

尝试从HTML页面打开批处理脚本(或CMD命令)

“OverflowError:Python int太大,不能转换为C长”在Windows上,但不是Mac

将USB设备传递到Docker Windows容器中

由于MapVirtualKeyEx()处理字符,所以它有ANSI和WIDE版本。 因此,该函数是MapVirtualKeyExA()/ MapVirtualKeyExW(),取决于您要使用哪一个

对于既是输入参数又是输出参数的参数,您将需要使用其中一种JNA参考类型。 如果HKL确实是一个int,则使用IntByReference。 如果它是一个结构,你需要定义一个相应的结构。

至于你的其他问题,试试JNAerator 。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐