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

查找函数“HelloWorld”时出错:找不到指定的过程

墨高杰
2023-03-14

我正在尝试访问一个在java代码中创建的VB.NET dll方法。我试图使用JNA来实现这一点。

这是我的Java代码。

java(调用dll方法)

import com.sun.jna.Native;

public class Hello {

public static void main(String[] args) {
    String myPath = System.getProperty("user.dir");
    System.setProperty("java.library.path", myPath);
    NativeInterface nInterface = (NativeInterface) Native.loadLibrary(
            "SampleDLLProject", NativeInterface.class);
    nInterface.HelloWorld();

    }

}
import com.sun.jna.*;

public interface NativeInterface extends com.sun.jna.Library {

    public void HelloWorld();
}

dll中的方法名和hello.java中的方法名没有区别。

有趣的是,我试图测试windows dll msvcrt.dll的puts()方法的代码,它工作得非常好。所以问题就在于点网DLL。请救命!

共有1个答案

郭易安
2023-03-14

您正在使用的库用于从本机库(如windows.dll和msvcrt.dll)加载方法,这些库被编译成可以直接在x86或x64处理器上运行的本机代码。

在VB.NET中创建的库不是本机库,它们是被编译成CIL(公共中间语言)的CLI(公共语言基础结构)程序集,然后被动态编译以运行任何类型的处理器(就像Java一样!)

 类似资料:
  • 问题内容: 我正在用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时出现相同错误。任何指示都会有帮助

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

  • null UnsatisfiedLinkError:查找函数“test”时出错:一个megadott eljárás nem található. 在com.sun.jna.function.(function.java:245),在com.sun.jna.nativelibrary.getfunction(nativelibrary.java:566),在com.sun.jna.nativeli

  • 问题内容: 为什么我得到这个? 我该如何解决? 问题答案: 重新安装JDK并在JDK上设置系统变量JAVA_HOME。(例如C:\ tools \ jdk7), 然后将JAVA_HOME变量添加到PATH系统变量中 在命令行输入 和 验证安装是否成功完成。