JNI监听全局鼠标钩子dll用VS编译显示发现重复定义,如何修改
在做一个程序,鼠标右键按下时记录鼠标坐标,右键释放时停止记录。
按照
http://dengpeng.sensorapp.net/?p=495
的方法做了一个钩子,在Code::Blocks下编译通过,但在Eclipse下调用时显示:
(Code::Blocks已在编译属性里勾选上AMD64选项:
);又用VS 2010编译,显示错误:
我对于JNI不太熟悉,请教各位我应该如何修改?为什么CodeBlocks编译通过了而VS显示“发现重复定义”?
提前感谢!
另外:如果想用Java监听全局鼠标事件,还有没有除此之外更简便的方法?
宮澤有紀寧
10 years, 5 months ago
Answers
1.
-march
参数不影响目标文件是否为64位(主要影响指令集,比如SSE, 3DNOW支持),
-m32
和
-m64
这两个参数才与是否生成32位或64位程序有关。你需要使用64位的MinGW编译器(可以使用这个发行版:
http://tdm-gcc.tdragon.net/
)。另外,还需要配置一下Code::Blocks使用64位的编译器。
2. MFC DLL不该有DllMain入口(MFC有自己的),请不要在DLL中使用MFC(你提供的例子完全不需要用MFC)。绕过该限制的方法也有,参考: http://support.microsoft.com/kb/14879...
SiroXX
answered 10 years, 5 months ago