swig 是一个工具,可以将c,c++代码转换成c#,java,perl,tcl,ruby等等语言,官网介绍如下
http://www.swig.org/Doc1.3/SWIG.html#SWIG_nn2
个人目标:c++ lib 项目转成c#可直接引用的dll
从头讲起,以下皆使用vs 2008
1. lib项目
1.1 vs,新建项目->选择Win32项目(项目名:lib-test)->选择静态库lib
1.2 解决方案资源器中选择项目,右键选择添加类->c++类->输入类名libXiao等,一路next,自动生成libXiao.h和libXiao.cpp
1.3 在.h中加入int add(int i,int j);声明,在.cpp中加入add函数实现代码
1.4 生成解决方案
接下来需要两个项目来完成转化,一个(c++ dll项目类型)利用swig来生成c#类文件和c++ dll,另一个(c# 类库项目类型)利用生成的dll和c#文件来生成其他c#项目可以直接引用的dll。
2. 使用swig生成c#类文件和c++ dll
2.1 vs,新建项目->选择Win32项目(项目名:swig-test)->选择dll
2.2 删除项目生成的所有文件,在项目属性->配置属性->c/c++->预编译头->创建/使用预编译头,选择”不使用预编译头“
2.3 在本地创建一个test.i文件
2.4 解决方案资源器中选择资源文件,右键选择添加现有项,添加刚生成的.i文件(不创建规则)
2.5 编辑test.i文件
%module Test&