2020-08-21

这几天踩过得坑,记录一下

1.vscode编译的dll,不像vs那样带符号库lib,在使用时,只需要头文件就行了(why?)

2.java命令行编译方法:javac -classpath ..\lib\jna-3.0.9.jar -encoding UTF-8 App.java,其中,"-encoding UTF-8"是指定.java文件的编码方式,因为javac默认认为.java文件是ansi编码的

3.java命令行运行方法:java -classpath ..\lib\jna-3.0.9.jar;. App。App后面不能加.class,否则提示找不到类App


更新下,今天又尝试在linux下用java调用so,跟windows端还是不同的。c++端,主要是DLL_EXPORT的定义有所不同,代码是这样的

#ifdef _WIN32
#define EXPORT_API extern "C" __declspec(dllexport)
#else
#define EXPORT_API extern "C" __attribute__((visibility("default")))
#endif

EXPORT_API int add(int a,int b){
    return a+b;
}

java代码的写法一模一样,但是在ubuntu中用javac编译、用java运行时是不一样的,命令分别为

javac -classpath ../lib/jna-3.0.9 Test.java

java -classpath ../lib/jna-3.0.9:./ Test

javac中,不用写jar的后缀;java中,classpath 分割符";"要换成":"

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值