java.lang.UnsatisfiedLinkError:查找函数时出错

时间:2017-09-04 22:14:19

标签: java dll jna unsatisfiedlinkerror

我正在尝试使用Visual Basic编写的.dll。我没有写它,所以没有源代码。我可以加载它并显示内部方法,但在尝试调用时得到“java.lang.UnsatisfiedLinkError:Error up up function”。这是我的代码:

SetConsoleMode

这是输出:

package dlltest;
import com.sun.jna.Library;
import com.sun.jna.Native;
import java.lang.reflect.Method;
import java.util.Collection;

public class DllTest {
    public interface TC2005 extends Library {
        public boolean TCEnabled();
    }

    public static void main(String[] args) {
        TC2005 tc2005 = (TC2005)Native.loadLibrary("TC2000Dev",TC2005.class);
        Method[] methods = tc2005.getClass().getDeclaredMethods();
        for (Method method:methods) System.out.println(method);
        System.out.println("TCEnabled="+tc2005.TCEnabled());
    }

}

还有更多的功能和输出,但为了清晰起见只显示了一个。

整天都在阅读关于这个主题的帖子,没有任何快乐。有些人谈论编译器会破坏方法名称,因此需要一个FunctionMapper代码。为了获得真正的方法名称,每个人都说要使用Dependency Walker。尝试使用它来加载.dll很多错误。还尝试加载使用.dll然后在DW中运行Profiler选项的.exe。这锁定了程序。 (没有回应)。

建议?

1 个答案:

答案 0 :(得分:0)

交叉检查您的版本。您需要的功能在加载的.dll中不存在。这类情况的版本不正确。