Java JNA调用C函数常见问题及解决方法


以下是博主自己使用JNA过程中遇到的一些问题汇总,分享给大家,少踩坑。

1 undefined symbol:xxx

在这里插入图片描述
在so中找不到指定的符号,往往是因为函数在so中没有定义导致的。
解决方法:检查C中函数是否正确定义。

2 Java映射C数组乱码

直接使用getBytes传参乱码
在这里插入图片描述

typedef struct
{
   
    int enable;
    char static_ip[20];
    char netmask[20];
    char gateway[20];
    char dns1[20];
    char dns2[20];
} network_eth;

extern "C"{
   
	int sdk_set_network_eth(const char* ip, network_eth* network_param);
}
//函数定义
int sdk_set_network_eth(const char *ip, network_eth *network_param){
   
    if (strlen(ip) == 0 || network_param == NULL){
   
        printf("sdk_set_network_eth param error!\n");
        return -1;
    }
    printf("ip:%s\n",ip);
    printf("network_eth enable:%d\n",network_param->enable);
    printf("network_eth static_ip:%s\n",network_param->static_ip);
    printf("network_eth netmask:%s\n",network_param->netmask);
    
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值