前言
关于环境和dll的生成,不懂的同学可以去查看JNA(一)与JNA(二)的内容
结构体可能比较重要,大多数Java应用与共享库的交互基本是以结构体做为桥梁,这里是结构体数组示例
操作
1.C语言代码
头文件(library.h)
#ifndef CDYNAMICDEMO_LIBRARY_H
#define CDYNAMICDEMO_LIBRARY_H
#include <string.h>
#include <stdlib.h>
// 结构体
struct Student {
char *name;
int age;
};
// 结构体数组
int sumStudentAge(const struct Student *students, int studentCount);
void getMultiStudents(struct Student **students, int *len);
void cleanStudents(struct Student *students);
#endif //CDYNAMICDEMO_LIBRARY_H
代码文件(library.c)
#include "library.h"
#include <stdio.h>
int sumStudentAge(const struct Student *students, int studentCount) {
int sum = 0;
int i = 0;
for (i = 0; i < studentCount; i++) {
sum += students[i].age;
}
return sum;
}
void getMultiStudents(struct Student **students, int *len) {

最低0.47元/天 解锁文章
845

被折叠的 条评论
为什么被折叠?



