当前位置: 首页 > 知识库问答 >
问题:

使用JNA的Windows api:找不到指定的过程

邢雨华
2023-03-14

我需要通过使用jna在java代码中使用RegLoadKey函数,但我得到以下错误消息:

线程“main”java.lang.UnsatifiedLinkError中出现异常:查找函数“regloadKey”时出错:找不到指定的过程。块引号

LONG WINAPI RegLoadKey(
  _In_      HKEY hKey,
  _In_opt_  LPCTSTR lpSubKey,
  _In_      LPCTSTR lpFile
);
import com.sun.jna.platform.win32.WinReg.HKEY;
import com.sun.jna.win32.StdCallLibrary;

public interface Advapi32 extends StdCallLibrary
{
    long RegLoadKey(HKEY hKey, String lpSubKey,String lpFile);
}
import com.sun.jna.*;
import com.sun.jna.platform.win32.WinReg.HKEY;
public class apiTest
{
       public static void main (String [] args)
       {

          Advapi32 lib2 = (Advapi32) Native.loadLibrary("Advapi32", Advapi32.class);
          HKEY key1 = new HKEY();
          String filePath = "C:\\tmp\\software";
          String regName = "loadedRegKey";
          long test = lib2.RegLoadKey(key1, regName, filePath);
       }

我认为我的代码有几个问题。我对windows api和JNA是新手。

共有1个答案

慕河
2023-03-14

您知道Advapi32封装已经是JNA的一部分吗?看看这里。我刚刚看到您的方法regloadkey还没有添加到那里。所以添加它并将更改提交给jna人员。之后,您可以这样使用它(伪代码):

public class RegistryRead{

 private Advapi32 api = null;

 public RegistryRead(){
    this.api = Advapi32.INSTANCE;
 }

 public void read() {
    long winapi = this.api.RegLoadKey(HKEY hkey, String subkey, String file);
    ...
 }
}
 类似资料:
  • 我正在尝试使用可视化工作室创建一个dll文件,并在java项目中使用/访问它。库似乎被加载了,但总是抛出相同的异常:线程“主”java.lang.中的异常不满意链接错误:查找函数“函数”时出错:找不到指定的过程。我的C / C技能不是最好的,所以问题可能就在那里。我试图编辑h和cpp文件,使用类,命名空间,静态方法和在网络上找到的其他人员,但无所事事。我也看到其他帖子谈论Depency Walke

  • 问题内容: 我正在用C ++编写一些JNI代码,以便从Windows XP的applet中调用。我已经能够成功运行applet并加载和调用JNI库,甚至可以在其他DLL中调用它。我通过设置PATH系统环境变量来使其工作,以包括所有DLL所在的目录。 因此,问题在于,我添加了另一个使用新的外部DLL的调用,并且突然在加载库时引发UnsatisfiedLinkError。消息为:“找不到指定的过程”。

  • 我试图开发一个C++DLL的JNA包装器。 在com.sun.jna.function.(function.java:252),在com.sun.jna.nativelibrary.getfunction(nativelibrary.java:600),在com.sun.jna.nativelibrary.getfunction(nativelibrary.java:576),在com.sun.j

  • 使用OracleDB时出错,错误为“找不到指定的过程”。节点安装OracleDB正常。为构建而执行的步骤如下 已安装Visual Studio 2017 Visual C 14.0 使用/app.js内容运行代码时出错 使用strongloop/loopback CLI时出现相同错误。任何指示都会有帮助

  • 问题内容: 我已经开始使用Python处理图片,并且想开始使用PIL(枕头)。要安装它,我跑了。安装时,以前未安装PIL。我还尝试卸载并重新安装它,以及使用。 当我在Python中运行它时,第一行是: 我检查了目录,并且PIL文件夹下存在文件_imaging.cp36-win_amd64.pyd。 如果存在所需的DLL,为什么会发生这种情况?我该如何解决? 问题答案: 我在Python 3.6中也

  • 我正在尝试访问一个在java代码中创建的VB.NET dll方法。我试图使用JNA来实现这一点。 这是我的Java代码。 java(调用dll方法) dll中的方法名和hello.java中的方法名没有区别。 有趣的是,我试图测试windows dll msvcrt.dll的puts()方法的代码,它工作得非常好。所以问题就在于点网DLL。请救命!