swig java使用实例

309 篇文章 5 订阅

步骤:

1、swig -java -c++ example.i    生成c++接口文件。
2、使用VS2010编译所有的c++文件,生成相应的dll (x86或者x64),其他Linux平台生成so =>example.dll example.so ,最后把动态链接库放到当前目录。
3、javac *.java
4、java runme

//example.cpp

double Foo=6.0;

int gcd(int x,int y)
{
    int g;
    g=y;
    while(x>0)
    {
        g=x;
        x=y%x;
        y=g;
    }
    return g;
}
%module example
# 注释%{ ..%} 文件名:example.i
%inline %{
extern int gcd(int x,int y);
extern double Foo;   
%}
        
//runme.java
public class runme {

  static {
    try {
	System.loadLibrary("example");
    } catch (UnsatisfiedLinkError e) {
      System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
      System.exit(1);
    }
  }

  public static void main(String argv[]) {
    // Call our gcd() function
    
    int x = 42;
    int y = 105;
    int g = example.gcd(x,y);
    System.out.println("The gcd of " + x + " and " + y + " is " + g);
    
    // Manipulate the Foo global variable
    
    // Output its current value
    System.out.println("Foo = " + example.getFoo());
    
    // Change its value
    example.setFoo(3.1415926);
    
    // See if the change took effect
    System.out.println("Foo = " + example.getFoo());
  }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值