SWIG is typically used to parse C/C++ interfaces and generate the 'glue code' required for the above target languages to call into the C/C++ code.
-
下载Windows预编译版并解压Swig,点击autogen.sh会自动生成swig.exe
-
目录
C:\swigwin-4.0.2\Examples\csharp
是C#样例,以C:\swigwin-4.0.2\Examples\csharp\simple
为例,用vs studio打开该目录下example.sln
-
在vs studio中构建vc项目得到
lib(包括32位和64位)
、examplePINVOKE.cs
、example.cs
- 64位lib生成位置为
C:\swigwin-4.0.2\Examples\csharp\simple\x64\Debug\example.dll
- 32位lib生成位置为
C:\swigwin-4.0.2\Examples\csharp\simple\Win32\Debug\example.dll
examplePINVOKE.cs
和example.cs
的生成目录都在C:\swigwin-4.0.2\Examples\csharp\simple
- 64位lib生成位置为
-
在vs studio中构建并运行cs项目测试生成的lib是否可用,注意需要手动拷贝lib到cs项目生成的.exe文件同级文件夹(在Unity中不需要这样,只需要保证Dll和对应cs文件在同一个程序集)
- Unity的lib放置的文件夹需要遵守一定的约定,参考,以Windows为例,把lib放在Assets/../Plugins/目录下
- 对于同名lib(同名不同平台,例如一个x86一个x64),需要在dll文件的Inspector窗口下取消选中Any Platform,以避免冲突
- 最后在Unity中正常引用对应方法即可