我正在开发一个简单的 c++ 应用程序来生成一个 dll,稍后我在 JNI 中使用它来运行 native api 调用,但问题是 dll 在我用来开发 dll 的机器上运行良好,但在服务器。两台机器都运行 Windows 7。
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
at java.lang.Thread.run(Unknown Source)
引起:java.lang.UnsatisfiedLinkError:de.deltacontrols.enteliprint.printer。 PrinterService.getStatus(Ljava/lang/String;)I
最佳答案
在机器上它不起作用在dependency walker 中打开您的dll .检查输出是否有错误,您可能正在使用调试版本的 dll,它在带有 visual studio 的机器上运行良好,或者它可能是目标机器上缺少的 c++ 可再发行组件
关于C++ DLL 不能在不同的机器上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30864445/