`

swig--在java、C#中调用c++写的DLL(以vs2012配置为例)

 
阅读更多
1、下载、安装:
http://www.swig.org/download.html下载swigwin-2.0.8 版本,注意是windows版本!!。



完了解压即可,其中有swig.exe
Examples文件夹下有许多示例~


2、C++端:
新建一个DLL工程,写一个示例代码如下:



3、在VS2012的外部工具中配置swig:
具体配置方法与Astyle等外部工具配置方法类似:
http://cherishlc.iteye.com/admin/blogs/1489826


4、用swig生成C++端的导出函数用的文件及C#端所需文件:
写一个swig用的module文件(.i后缀)如下:
其中第一次出现的.h文件(c语言风格,以#开头)为要包含在生成的.cxx文件中的头文件;
之后,以%开头的头文件则是为了定义所要导出的函数


然后在该文件为当前编辑的文件时运行刚才配置的swig工具,生成如下文件:


5、将swig生成的文件加入到工程:
C++端:加入*.cxx文件到工程中



C#端类似,加入的为*.cs文件而已。

6、生成DLL,测试
编译C++端的工程,生成DLL(注意生成的DLL名要与modle文件中的module名一致,手动改生成的文件名或直接配置均可)
工程文件中配置如下:
C++端:
要配置两处,必须得一致,可恶的VS2012的规定啊,参见:
http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/beb1c32f-3893-4061-81a7-4aed4032a367/



C#端:
注意和c++生成的DLL在一个文件夹中,或者自己拷贝到同一文件夹中~




一切搞定,编译工程,可以运行了


工程代码见附件
  • 大小: 13.5 KB
  • 大小: 36.2 KB
  • 大小: 18.6 KB
  • 大小: 3.7 KB
  • 大小: 26.8 KB
  • 大小: 38 KB
  • 大小: 21.9 KB
  • 大小: 18.9 KB
  • 大小: 40.4 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics