java生成dll不是有效程序集,尝试加载C ++ DLL时,JNA UnsatisfiedLinkError%1不是有效的Win32应用程序...

我正在尝试在Java应用程序中使用我的C ++但是在简单的JNA中失败了,我不知道为什么。

出于测试目的,我使用以下教程中的DLL:

http://msdn.microsoft.com/en-us/library/vstudio/ms235636.aspx

现在我尝试使用JNA加载Add方法

import com.sun.jna.Native;

import com.sun.jna.Library;

public class Jnatest {

public interface CppLib extends Library {

CppLib INSTANCE = (CppLib)Native.loadLibrary("MathFuncsDll", CppLib.class);

double Add(double a, double b);

double Subtract(double a ,double b);

double Multiply(double a, double b);

double Divide(double a, double b);

}

public static void main(String[] args) {

System.setProperty("jna.library.path", "C:\\JNA\\");

CppLib lib = CppLib.INSTANCE;

double res;

res=lib.Add(1.0, 1.25);

System.out.println("add:\t"+res);

}

}

编译时我得到以下加载例外:

Exception in thread "main" java.lang.UnsatisfiedLinkError: %1 ist keine zulässige Win32-Anwendung.

at com.sun.jna.Native.open(Native Method)

at com.sun.jna.Native.open(Native.java:1759)

at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:260)

at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398)

at com.sun.jna.Library$Handler.(Library.java:147)

at com.sun.jna.Native.loadLibrary(Native.java:412)

at com.sun.jna.Native.loadLibrary(Native.java:391)

at Jnatest$CppLib.(Jnatest.java:9)

at Jnatest.main(Jnatest.java:23)

首先,我知道文件所在的库路径有问题。但是System.setProperty(“jna.library.path”,“C:\ JNA \”);应该设置路径imo。

还有什么可能是错的?

谢谢

大卫

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值