草庐IT

java - JNA 加载库

我有两个库,一个带有Ada对象,一个带有C++对象(我没有太多控制权去哪里)Ada的东西引用了C的东西,反之亦然......这个符号在libIPCAda.so中:ipc_manager_shutdown_c这个符号在libIPCC.so中:stream_buffer_header_size当我执行这些JNA调用时:CLibraryINSTANCE8=(CLibrary)Native.loadLibrary("IPCAda",//我明白了:ld.so.1:java:fatal:relocationerror:file>/lib/libIPCAda.so:symbolstream_buff

java - 写入文件时JNA无效的内存访问

出于调试原因,我正在为C++DLL(使用gcc和mingw32编译)编写一个jna包装器写入16Byte.dllvoidwrite16Byte(constBYTE*mem){FILE*out=fopen("BSTRvalues.txt","a+");if(out==NULL){printf("Erroropeningfile!\n");return;}for(inti=0;ijna包装器publicinterfaceW16BDllextendscom.sun.jna.Library{W16BDllINSTANCE=(W16BDll)com.sun.jna.Native.loadLibr

windows - 在 JNA 中创建一个 native Windows 窗口,并使用 GWL_WNDPROC 创建一些 GetWindowLong

你好,我一直在使用JNA与WindowsAPI进行交互,现在我在创建窗口时卡住了。据我所做的如下:1.已创建现有窗口的子窗口并获得有效的处理程序。2.了解Windows中的每个窗口都有一个不间断的消息分发循环。3.了解将我的窗口包含在消息分发循环中的最佳方法是使用类似于以下代码的内容(不是我的,但我也会这样做):finalLONG_PTRprevWndProc=newLONG_PTR(User32.INSTANCE.GetWindowLong(hwnd,User32.GWL_WNDPROC));//thisistoobtainapointertotheWNDPROCoftheparen

java - JNA 库,缺少 Windows 函数 : how to add new functions?

我有一个关于Java和jna库的问题。我已经从java.net下载了两个jar(jna.jar和platform.jar)。在com.sun.jna.platform.win32包中已经定义了一些链接windll的接口(interface),但是在Kernel32文件中,有一个函数是缺少,函数是DeviceIoControl。我的问题是:我在哪里可以找到所有Windowsdll的完整列表以及所有功能的完整列表,可能还有所有Windows版本的兼容性列表?(很重要)从msdn站点我找到了完整的函数列表,其中包含函数所在的库的名称,但没有找到其他函数。我能否创建一个扩展Kernel32的新

java - 使用 JNA 或 JNI 模拟在 Windows 中按下的键

我想用Java模拟按键。其他人使用Robot尝试过此操作。这只允许原子按键,我想在其中模拟按键保持(比如一秒钟)和释放。所以,我需要使用JNA或JNI。我调查了JNative,但这似乎是为了在操作系统级别使用关键事件,而不是在操作系统级别生成它们。我如何从Java生成此类事件?谢谢 最佳答案 实际上,使用Robot,您可以按住一个键一秒钟。Robotr=...r.keyPress(KeyEvent.VK_A);Thread.sleep(1000);r.keyRelease(KeyEvent.VK_A);

java - 使用 Putty、Gradle 和 Gradle Git 插件时如何修复 "incompatible JNA native library"?

我有这个简单的构建脚本:importorg.ajoberstar.grgit.Grgitapplyplugin:'application'applyplugin:'org.ajoberstar.release-opinion'taskwrapper(type:Wrapper){gradleVersion='2.1'}buildscript{repositories{mavenCentral()}dependencies{classpath'org.ajoberstar:gradle-git:0.11.+'}}release{grgit=Grgit.open(project.file('

java - 使用 JNA 链接到自定义 dll

如何使用JNA访问自定义.lib/.dll函数?有人可以举个例子吗?谢谢。 最佳答案 示例(fromWikipedia):importcom.sun.jna.win32.StdCallLibrary;importcom.sun.jna.Native;/**SimpleexampleofWindowsnativelibrarydeclarationandusage.*/publicclassBeepExample{publicinterfaceKernel32extendsStdCallLibrary{//FREQUENCYisexp

java - 如何获取 Java 中所有窗口句柄的列表(使用 JNA)?

我是JNA的新手。我正在尝试获取所有窗口的句柄,包括最小化的窗口。我需要所有窗口的HWND。我已经解决了这个问题Windows:howtogetalistofallvisiblewindows?这帮助我获得了窗口列表,但它的hWnd类型为int。我不能将它与要求com.sun.jna.platform类型的hWnd的com.sun.jna.platform.win32.User32函数一起使用。win32.WinDef.HWND。那么,有什么方法可以获取类型为com.sun.jna.platform.win32.WinDef.HWND而不是int指针的所有窗口句柄?最后,为什么int和

java - Windows 中的 JNA 键盘钩子(Hook)

我整理了一个JNA代码,用于在Windows中安装键盘Hook(使用JNA示例)。代码编译和一切,我安装了Hook(我成功获得了Hook的句柄),也可以成功卸载Hook。但是,当我按下键盘上的任何键时,回调永远不会被调用。这是我的代码(其中大部分是从JNA示例中获得的类型定义,我的部分直接转到“main”)importcom.sun.jna.IntegerType;importcom.sun.jna.Pointer;importcom.sun.jna.PointerType;importcom.sun.jna.Structure;importcom.sun.jna.FromNative

go - 在 C 共享库中公开一个带有 2D slice 作为参数的函数(通过 JNA 和 C 在 Java 中使用)

我正在尝试使用go编写一个简单的矩阵运算API,并将API公开为共享库。这个共享库将从Java(使用JNA)和C中使用。关于使用除简单int或string之外的任何数据类型作为函数参数的文档非常少。我的要求是将具有1个或多个2Dslice的函数作为参数和返回类型公开。我无法弄清楚是否支持这样的事情。这可能吗?有这方面的例子吗? 最佳答案 我认为关键点是查看gobuild工具生成的slice、string和int的c绑定(bind)。2Dslice没试过,不过应该和1Dslice有unsafepointerconverter没什么区别