lib, 一个dll, pdb看需要
环境配置
C++这边肯定要链接mono.lib, 所以dll要拷贝到exe的目录
除了mono本身外, 还需要.net的runtime assembly, 最精简的情况只需要一个...C++调用脚本(DLL)里的东西比较方便, mono的embed api很全
C#调用C++的话, 需要把C++的类在C#这边做一下映射, 有两种方式:
InternalCall: 直接用mono api...自己去解析C++头文件再生成两边的代码的话, 可以参考一下doxybind.
P/Invoke: 最通用的方案, .Net圈子里用得很多. 缺点是C++这边必须编译成DLL, 导出很多函数....用SWIG的话只需要定义一个文件指明需要把哪些头文件导出给C#用, 然后粘合层的cpp和C#的包装代码都可以自动生成, 再集成到VC的build event中, 编译好工程直接就生成好C#这边引用的DLL...SWIG生成的包装类名和方法名都没变化, 用起来很爽. VS/MD会自动解析引用的DLL, 写代码时的因为有强大的IDE, 智能提示, 语法纠错, 编译检查都是非常好用的.