JNA调用DLL异常

问题描述

main.hintadd(inta,intb);intfactorial(intn);main.appintadd(inta,intb){returna+b;}intfactorial(intn){return2*n;}编译生成DLL,用JNA调用的时候,显示Exceptioninthread"main"java.lang.UnsatisfiedLinkError:Errorlookingupfunction'add':……atcom.sun.jna.Function.<init>(Function.java:179)atcom.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:345)atcom.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:325)atcom.sun.jna.Library$Handler.invoke(Library.java:203)at$Proxy0.add(UnknownSource)atcom.yonyou.GUI.main(GUI.java:29)接口publicinterfaceJNATestDllextendsLibrary{JNATestDllinstanceDll=(JNATestDll)Native.loadLibrary("main",JNATestDll.class);publicintadd(inta,intb);publicintfactorial(intn);}实现System.out.println(JNATestDll.instanceDll.add(4,2));为什么会报那样的错误呢?求指教

解决方案

解决方案二:
Java这边貌似没有问题C++那边做DLL的时候,得把add函数声明为EXPORT的才行确认方法:在控制台运行dumpbin/EXPORTSmain.dll,查看是否有add函数如果没有的话,百度【用C/C++做DLL函数的导出方法】,估计就能解决了其中的dumpbin是VC的SDK的命令另外得保证Java和C++同时为32位或者64位如果还解决不了的话,贴完整代码上来吧

时间: 2024-12-31 02:39:53

JNA调用DLL异常的相关文章

jna dll-java 用jna调用dll库问题

问题描述 java 用jna调用dll库问题 昨天接手一个新项目,是关于java调用dll的,用jna实现,在我本机上运行成功,今天换了台电脑,就出现了EXception in main thread java.lang.UnsatisfiedLinkError UNable to load library..........请问有谁知道原因啊?急. 解决方案 dll已经放到system32 下了,还是一样出错 解决方案二: 目测是需要加载的dll位置不对 你再看看啦 解决方案三: 使用JNA通

dll调用-jdk1.6下用jna调用dll库报错,换成jdk1.7成功

问题描述 jdk1.6下用jna调用dll库报错,换成jdk1.7成功 使用jkd1.6提示java.lang.UnsatisfiedLink,换成jdk1.7就可以了,请问有没有熟悉的大神知道是什么原因 解决方案 http://bbs.csdn.net/topics/390509805

Jna调用dll文件,怎么释放内存

问题描述 本人初次有Java调用dll,但是用jna调用dll,内存怎么处理Jna调用dll文件,怎么释放内存,最好有代码

JNA调用DLL文件异常

问题描述 Exceptioninthread"AWT-EventQueue-0"java.lang.UnsatisfiedLinkError:Errorlookingupfunction'add':"特殊字符"atcom.sun.jna.Function.<init>(Function.java:179)atcom.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:345)atcom.sun.jna

jna调用dll

问题描述 报错信息:java.lang.UnsatisfiedLinkError:Errorlookingupfunction'addlyh':ÕҲ»µ½ָµ,哪位大神指点一下啊 解决方案 解决方案二:把Java代码和DLL调用相关的部分贴上来把DLL的代码贴上来用VC自带的命令[dumpbin/EXPORTS你的DLL名字]的输出贴出来

jna-使用JNA或者JNI调用dll的问题

问题描述 使用JNA或者JNI调用dll的问题 我有一个dll文件,是厂家给的二次开发SDK,当我使用JNI调用的时候出现如下提示: System.loadLibery("Basic"); 提示:Can't load this .dll (machine code=0x0) on a IA 32-bit platform 但是当我使用JNA调用的时候提示找不到模块 dll文件我已经放在了system32.bin.项目路径下,程序能找到dll文件的,但是调用的时候不能调用,请问什么情况啊

急需-JNA调用C的DLL,如何取回当初传入的字符指针的修改值

问题描述 JNA调用C的DLL,如何取回当初传入的字符指针的修改值 JNA调用C的DLL,如何取回当初传入的字符指针的修改后的值

jnative 异常 java-用JNative方法调用dll

问题描述 用JNative方法调用dll 运行环境是JDK1.4 报异常信息: An unexpected exception has been detected in native code outside the VM. Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x4769AA6 Function=[Unknown.] Library=C:WindowsSystem32BoostYc

jna-关于JNA调用C++SDK的相关问题

问题描述 关于JNA调用C++SDK的相关问题 如题,最近接了个项目要和海康进行视频接口的对接.但是收到的SDK是C++的,实验使用JNA和JNative调用dll进行测试.先说明DLL的情况 在使用JNA进行调用HikPlatformSDK.dll时显示无法加载指定的dll,使用之前的dll中的AnalyzeData.dll则可以调用函数,完全不懂C++.求问怎么可以调用HikPlatformSDK.dll,好像这个DLL中引用了很多其他的dll_(:з」∠)_,求解,万分感谢 解决方案 ht