2012-01-17 108 views
0

我正在尝试创建一个键盘挂钩在Java中使用。经过一番研究,我意识到我需要从C++中获得一些东西。我对C++没有太多的经验,我只在短时间内混淆了语法。我将如何在C++中执行此操作?我将如何让C++代码与Java代码交互?任何帮助是极大的赞赏。C++/Java - 键盘钩

+1

有很多信息已经在那里回答这个问题,大部分都在这个网站上。如果你有一个*特定的问题,你会更好地阅读它,然后回来。这不需要C++,但可以使用C和JNA来完成,但如果要成功,您需要知道如何使用C编写代码。 – 2012-01-17 03:14:58

+0

对于Windows,请参阅[Windows上的JNA键盘钩子](http://stackoverflow.com/questions/3078646/jna-keyboard-hook-in-windows)或[KeyHook.java](https://github.com/来自JNA的twall/jna/blob/master/contrib/w32keyhook/src/KeyHook.java)contrib – prunge 2012-01-17 04:44:48

回答

1

我不太确定你想要什么你的C++代码,但在这里,你将如何使其与Java的工作:

查找到JNI,这将解释如何通过Java

执行本机代码

http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jni.html

本质上,您使用一种工具来创建您在C++应用程序中包含的胶水标题。当您调用native函数时,Java代码将自动调用本机库。

另外请记住,从原生到java层有一个速度惩罚。

+0

对于这类问题,JNA比JNI使用起来要容易得多。 – 2012-01-17 03:16:17

+0

我没有太多的JNA经验,如果你发布一个答案,那么对于提问者会有所帮助,那么我认为 – Prime 2012-01-17 03:18:09

+1

JNA是一个建立在JNI之上的库,允许Java程序直接与C dll进行交互,而无需必须创建头文件。如果我认为他的问题是可以回答的,我会将其作为答案张贴,但事实并非如此。我所能做的就是为这个过于宽泛的问题提出一般性建议。我认为,在他甚至可以考虑接近这个话题之前,OP需要首先做他的家庭工作和尽职调查。 – 2012-01-17 03:21:29