`
shuaiji
  • 浏览: 27359 次
  • 性别: Icon_minigender_2
  • 来自: 厦门
社区版块
存档分类
最新评论

应用SWIG 封装C++ 接口提供Java 程序调用

阅读更多

最近需要把别人用C++别写的程序,wrap成java 提供给程序使用。想了好久不知道如何去做,尝试了Jacob,JNI,JNA 等比较流行的开源框架,但是自己C++水平有限,都很难达成结果。最后发现了SWIG ,用来wrap C++的利器。真是佩服编写这个的人,能够封装多种语言,实在是太厉害了。自古天下程序一大抄,我也是学习了公司前人的程序,搞清了SWIG 如何使用。我只是用到了wrap java ,SWIG 使用的是 生成JNI代码的方式,具体步骤如下:

 

1 编写.i  文件

2执行SWIG 指令生成JAVA 文件和JNI 接口文件

3编译JNI c++接口文件

4编译java文件

5编写library测试程序

 

分享到:
评论
2 楼 shuaiji 2012-02-20  
wenzibo259 写道
最近在做java的web项目,想实现一共类似outlook邮件提醒的功能。可能要用到java与C++的结合,哥们能提供个例子看看。

swig -java -module JMobiusLib -package com.nim.jmobius -Wall -c++ -I'D:\P4\tj_scm\core\mobius\main\Ncdb\Include\*' -outdir  D:\swig_file_mobius2traffic\main_branch\JMobius\output\java\com\nim\jmobius  D:\swig_file_mobius2traffic\main_branch\JMobius\API.i
1 楼 wenzibo259 2012-02-08  
最近在做java的web项目,想实现一共类似outlook邮件提醒的功能。可能要用到java与C++的结合,哥们能提供个例子看看。

相关推荐

    swig工具,C/C++到python, tcl 的接口

    SWIG的主要功能是生成一个 wrapper(封装器),将C/C++代码暴露给脚本语言,以便在脚本语言中使用C/C++代码。 SWIG的优点 * 跨语言调用:SWIG使得C/C++代码可以在脚本语言中被调用,实现了跨语言的调用。 * 高效率...

    Python调用C++封装

    它可以直接调用C函数,但对C++的支持有限,通常需要C++代码提供C兼容接口(如C++虚函数表)。在`CreateDLL.py`这个文件中,可能会使用ctypes库加载`Release`目录下的C++ DLL文件,然后调用其中的函数。 5. 创建和...

    c++swigcsharp.rar

    4. 生成C#绑定:SWIG还会生成C#的代理类,这些类提供了与C++接口的对应方法,方便C#代码进行调用。 在C#项目中,我们需要做以下操作来调用C++的代码: 1. 添加引用:将生成的C#代理类库(DLL)添加到C#项目的引用...

    swig-1.3.40 for windows

    SWIG(Simplified Wrapper and Interface Generator)是一款强大的工具,用于将C和C++代码自动封装成其他编程语言的接口,比如Python、Java、Perl、PHP等。在Windows平台上,SWIG通常以预编译的二进制形式提供,如本...

    python调用C++函数

    3. **Boost.Python**: Boost库中的Python组件提供了一个强大的接口,允许C++程序员编写可由Python调用的C++代码。它提供了类、对象、函数等的封装,并处理了内存管理和异常处理等问题。 4. **Pybind11**: Pybind11...

    SWIG4.0开发手册

    手册内容覆盖了从基本概念到高级应用的各个方面,包括SWIG的版本介绍、许可证信息、安装方法、目标语言支持情况、实际使用SWIG的例子、如何创建SWIG接口文件、SWIG命令的使用、如何构建Perl、Python等语言模块、SWIG...

    SWIG是一种软件开发工具,可将用C和C++编写的程序与各种高级编程语言连接起来_C++_下载.zip

    例如,一个高性能的图像处理库可能使用C++编写,通过SWIG接口,开发者可以用Python编写应用程序的逻辑,而图形界面则可以由Java或JavaScript实现,这样既保持了后端的高效性,又简化了前端的开发。 总之,SWIG是C和...

    基于SWIG的Python仪器驱动封装技术.pdf

    SWIG能够帮助开发者将C或C++语言编写的库封装成Python的扩展模块,这样一来,开发者就可以在Python程序中方便地调用这些库提供的功能。例如,本文中提到的某多功能数据采集模块的驱动封装,就是利用SWIG将其封装成...

    简单的Python调用C++程序.zip

    对于需要调用C++代码的情况,Cython提供了一种更接近Python的方式来封装C++库,同时保持了Python的易读性。 4. **Boost.Python**: Boost库的一部分,它提供了一种在Python和C++之间进行互操作的高级接口。如果你对...

    SWIG v3.0.6.zip

    也可以用于构建桌面应用程序,利用高级语言的便捷性编写用户界面,而将计算密集型部分封装在C/C++中以提升性能。此外,SWIG还能帮助教学和研究,因为它可以让学生和研究人员专注于理解和实现算法,而不是被语言间的...

    SWIG英文说明书

    SWIG(Simplified Wrapper and Interface Generator)是一种强大的工具,用于连接程序设计语言(如C、C++)与多种高级编程语言(如Python、Java等)。下面将从SWIG的基本概念、安装与配置、基本用法以及应用场景等...

    SWIG Specification

    SWIG(Simplified Wrapper and Interface Generator)是一种软件开发工具,其主要功能是简化将不同编程语言接口到C和C++程序的任务。SWIG能够在不需要修改现有代码的基础上,自动创建其他编程语言(如Perl、Python、...

    swig使用手册

    它通过自动生成必要的封装代码,使C/C++库能够被多种脚本语言调用,如Perl、Python、Ruby等,无需开发者手动编写繁琐的接口代码。 **2.1 SWIG是什么?** SWIG是一种自动化工具,用于构建C/C++库与各种脚本语言之间...

    基于SWIG的Python仪器驱动封装技术.zip

    本篇文章将深入探讨如何利用SWIG将C/C++编写的仪器驱动程序封装为Python可调用的模块,从而实现Python与硬件设备的高效通信。 1. **SWIG简介** SWIG是一个开源工具,它通过分析C/C++源代码来生成接口代码,使得...

    swig-4.0.1.tar.gz

    SWIG(Simplified Wrapper and Interface Generator)是一款强大的工具,用于将C和C++代码自动封装成其他编程语言的接口,如Python、Java、Perl、PHP等。`swig-4.0.1.tar.gz`是一个包含SWIG 4.0.1版本源代码的压缩包...

    swig的学习以及国密的python封装.zip_python 国密_swig的学习以及国密的python封装_国密

    标题中的“swig的学习以及国密的python封装”是指通过SWIG(Simplified Wrapper and Interface Generator)工具将中国的国家密码算法(简称国密)封装为Python库的过程。SWIG是一个工具,它允许C/C++代码与多种高级...

    CRF封装JNI整合包(win+linux)

    在本案例中,SWIG用于生成Java调用C++代码的必要接口。 3. **创建JNI接口**:首先,你需要定义一个C++接口,这个接口会暴露CRF模型的核心功能。例如,可能包含训练模型、预测标签、初始化和释放资源等函数。 4. **...

    swig-3.0.12.tar

    SWIG(Simplified Wrapper and Interface Generator)是一款强大的工具,用于将C和C++代码自动封装成其他编程语言的接口,比如Python、Java、Perl、PHP等。SWIG 3.0.12是该工具的一个特定版本,它包含了对各种语言...

    将声网提供的C++SDK转换为C#接口

    1. **封装C++接口**:首先,你需要对C++ SDK中的关键函数和类进行封装,创建一个纯C接口。这是因为C++的特性如多态、构造函数等在C#中无法直接使用。纯C接口将避免这些高级特性的使用,使得接口更容易被其他语言调用...

    多语言粘合工具swig源代码

    它能够自动将C或C++库封装成其他语言,比如LUA、PYTHON和JAVA,使得这些语言能够无缝地调用原生的C/C++代码。在“多语言粘合工具swig源代码”这个主题中,我们将深入探讨SWIG的工作原理、主要功能以及如何利用其提供...

Global site tag (gtag.js) - Google Analytics