jjzjj

java - 在jna中获取字节数组的指针

我在C#中有以下代码,并且需要在使用JNA的Java中实现类似的功能:IntPtrpImage=SerializeByteArrayToIntPtr(imageData);publicstaticIntPtrSerializeByteArrayToIntPtr(byte[]arr){IntPtrptr=IntPtr.Zero;if(arr!=null&&arr.Length>0){ptr=Marshal.AllocHGlobal(arr.Length);Marshal.Copy(arr,0,ptr,arr.Length);}returnptr;} 最佳答案

java - 如何使用 JNA 调用返回字符串的 Delphi 函数?

我正在研究从Java程序中调用Delphi编译的*.so文件的函数。经过一些研究,它似乎是JNA他要走的路吗?在深入研究一些复杂的Delphi代码之前,我尝试使用一些“HelloWorld”代码,但在获取Delphi函数返回的字符串时遇到了问题。Delphi代码(helloworld.pp):libraryHelloWorldLib;functionHelloWorld(constmyString:string):string;stdcall;beginWriteLn(myString);Result:=myString;end;exportsHelloWorld;beginend.我

java - 如何使用 JNI 或 JNA 读取窗口标题?

希望回到发展空间;主要使用Java调用一些nativewin32函数(我不想在.NET中构建)...有人可以指点我可以使用Java(JNI/JNA/SWIG)从不同的运行窗口读取标题的地方吗?假设您知道您尝试Hook的应用程序在内存空间中的哪个位置。 最佳答案 在JNA中:publicinterfaceUser32extendsStdCallLibrary{User32INSTANCE=(User32)Native.loadLibrary("user32",User32.class);intGetWindowTextA(Pointe

c# - 让 JNA 与 Java 一起工作 => C#?

我已经在C#库中编写了很多代码,现在我需要从Java调用它们。我在SO上看到它被推荐使用JNA,但我什至无法走出起跑线;那里的文档非常粗略。首先,它似乎只向您展示了如何连接到NativeC库,这对我来说并不好;我想连接到我自己的图书馆。那里的代码示例显示://Thisisthestandard,stablewayofmapping,whichsupportsextensive//customizationandmappingofJavatonativetypes.publicinterfaceCLibraryextendsLibrary{CLibraryINSTANCE=(CLibra

java - JNA UnsatisfiedLinkError - 当我将 java.library.path 设置为虚假值时有效

在Linux上使用JNA4.0.0,我试图加载一个本地库(libmean.so),它位于lib子目录中(该库是只是一个计算两个数字的平均值的简单示例)。我运行以下代码(在Eclipse中),在运行配置中设置了-Djna.library.path=lib。importcom.sun.jna.Library;importcom.sun.jna.Native;publicclassMean{publicinterfaceMeanLibextendsLibrary{MeanLibINSTANCE=(MeanLib)Native.loadLibrary("mean",MeanLib.class)

java - 如何使用 java 实现类似 alt+tab 的功能?

图像显示了getDisplayMedia()的作用我想向用户显示所有当前使用java打开的应用程序/窗口(如alt+tab的应用程序/窗口)。在javaScript中,我们可以通过媒体设备接口(interface)getDisplayMedia()来完成此操作。我想使用java实现类似的功能。有什么方法可以使用JNA或其他方法来做到这一点。 最佳答案 我分享的方法是使用JavaRobot拉出alt+tab菜单并让它在延迟后关闭(它也会切换窗口)。希望这对您有所帮助!publicstaticvoidalt_tab(){Robotrob

java - 如何告诉 Proguard 避免混淆 JNA 库类?

换句话说:我应该使用什么-keep命令来告诉Proguard避免混淆代表native库的类?(因为JNA要求名称匹配等效的native函数、结构等) 最佳答案 这是我现在使用的规则:-keepclassmembersclass*extendscom.sun.jna.**{;;}不过,我仍然认为可能有更好的方法。 关于java-如何告诉Proguard避免混淆JNA库类?,我们在StackOverflow上找到一个类似的问题: https://stackover

java - 如何使用 JNA 创建同一个库的多个实例?

我有一个JavaNativeAccess的问题:我有一个只有一个函数的C库,假设是foo()。这个函数有一个内存——一个计数器——随着每次调用而增加。是否可以在同一个java进程中创建该库的两个实例,以便计数器是独立的?非常感谢。这是一些代码:publicclassA{publicstaticclassLib{NativeLibrarylibInstance=NativeLibrary.getInstance("myLibrary");Functionfn=lib.getFunction("foo");}privateLiblib=newLib();publicfoo(){lib.fn

java - 使用 JNA 的 C 回调使 JRE 崩溃

我在处理JNA中的回调时遇到问题。我正在尝试使用一个使用回调来处理多个session事件(登录、注销、连接问题...)的CAPI。session对象(称为sp_session)是一个不透明的结构。所有回调都在sp_session_callbacks结构中注册。根据API,我应该声明回调对象,并将其放入我将在创建sp_session对象时提供的Config对象中。如果我不想使用某些回调,我应该用null初始化它们。API使用__stdcall调用约定。这是与我的问题相关的Cheader片段:#defineSP_CALLCONV__stdcalltypedefstructsp_sessio

java - com.sun.jna 和 net.java.dev.jna 的区别?

我正在查看中央Maven存储库,并看到一个net.java.dev.jna和一个用于JNA的com.sun.jnagroupId。JNA的github,使用com.sun.jna路径作为其源代码中的目录,表明4.1已作为评论的一部分推送到存储库中,但我看到net.java.dev.jna在4.1和com.sun.jna在3.0。显然,我想使用JNA,但感到困惑。这个包是怎么回事? 最佳答案 要使用的正确4.1版本是net.java.dev.jna:net.java.dev.jnajna4.1.0包名似乎仍然是com.sun.jna,