前言
关于环境和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;
};
void printStudent(const struct Student *student);
struct Student getStudent();
void updateStudent(struct Student *student);
#endif //CDYNAMICDEMO_LIBRARY_H
代码文件(library.c)
#include "library.h"
#include <stdio.h>
void printStudent(const struct Student *student) {
printf("\nthe student's name: %s, age is: %d", student->name, student->age);

本文详细介绍了如何在C语言和Java中通过结构体与DLL进行交互,包括C语言代码的编写、头文件定义,以及Java中通过JNA调用C函数并处理结构体的示例。
最低0.47元/天 解锁文章
983





