zoukankan      html  css  js  c++  java
  • java通过jna调用so

    c++:

    FirstEliteValidate.h

    #pragma once
    
    void __attribute__((constructor)) startup();
    void __attribute__((destructor)) shutdown();
    #ifdef __cplusplus
    extern "C" { #endif int FirstEliteValidateTest(); #ifdef __cplusplus } #endif

    FirstEliteValidate.cpp

    #include "FirstEliteValidate.h"
    
    /*
        To test the library, include "FirstEliteValidate.h" from an application project
        and call FirstEliteValidateTest().
        
        Do not forget to add the library to Project Dependencies in Visual Studio.
    */
    
    static int s_Test = 0;
    
    int FirstEliteValidateTest()
    {
        return ++s_Test;
    }
    

    编译出so文件命名为 libFirstEliteValidate.so,复制到 /usr/lib下

    java:

    package com.bg.security;
    
    import java.util.Properties;
    
    import com.sun.jna.Library;
    import com.sun.jna.Native;
    
    public class Program4Linux {
        
        public interface CLibrary extends Library {
            int FirstEliteValidateTest();
        }
    
        
        public static void main(String[] args) 
        {
            CLibrary lib = (CLibrary) Native.load("FirstEliteValidate", CLibrary.class);
            int a = lib.FirstEliteValidateTest();
            int b = lib.FirstEliteValidateTest();
            int c = lib.FirstEliteValidateTest();
    
            System.out.println("a=" + a);
            System.out.println("b=" + b);
            System.out.println("c=" + c);
            
            Properties props = System.getProperties();
            System.out.println("Operation System:" + props.getProperty("os.name"));
            System.out.println("System Version:" + props.getProperty("os.version"));
            System.out.println("end");
        }
    }

     运行:

    java -Djava.ext.dirs=/home/knife/DemoCode/jar -Djava.library.path=lib com.bg.security.Program4Linux
  • 相关阅读:
    判断以下字符串中出现次数最多的字符,并且算出该字符出现的次数
    status的状态码
    call和apply的区别?
    闭包
    $(document).ready和window. onload的区别
    python_pandas常用操作
    python经典例题
    爬B站并保存成csv文件。提供数据
    data_analysis:初识numpy
    01爬取豆瓣网电影数据进行numpy的练习
  • 原文地址:https://www.cnblogs.com/nanfei/p/11687620.html
Copyright © 2011-2022 走看看