c语言动态链接文件dll和.so文件生成
c语言动态链接文件dll和.so文件生成
Windows系统(dll):
使用c语言版eclipse生成dll文件,具体eclipse设置参考:https://blog.csdn.net/csdncqmyg/article/details/53170548。
eclipse下载地址:链接:https://pan.baidu.com/s/1HcFw-wDr_HYYQ66ZptnzBw 提取码:5zi1 。
Linux系统(so):
so文件生成命令:gcc -fPIC -shared 文件名.c -o so文件名.so。例:gcc -fPIC -shared des.c -o libdes.so。
将.so放在$echo LD_LIBRARY_PATH下
jna解析动态链接文件
// jna解析
JNADes instanceDll = (JNADes)Native.loadLibrary("libtest",JNADes.class);
例:调用c函数:int reportdes(char *souchar, char *destchar, char *key , int len , int flag)
int reportdes(char *souchar, char *destchar, char *key , int len , int flag)
{
······
}
java定义代码如下:
import com.sun.jna.Library;
import com.sun.jna.Native;
public interface JNADes extends Library {
JNADes instanceDll = (JNADes)Native.loadLibrary("libtest",JNADes.class);
public int reportdes (byte[] souchar,byte[] destchar, byte[] key , int len , int flag);
}
方法调用:
JNADes.instanceDll.reportdes(source, target, null, target.length, 0);
jna jar包
jna 3.5.1.jar platform 3.5.1.jar
链接:https://pan.baidu.com/s/1Ab3ZpuOoPP0nUAMV1hR0rQ
提取码:5m92