CppSharp is a collection of libraries for working with C++ code from .NET.
Generates .NET bindings that wrap C/C++ code allowing interoperability with managed languages. This is useful if you want to consume an existing native library in your managed code or add scripting support to a native codebase.
- Multiple backends: C++/CLI and C# P/Invoke
- Multiple ABIs: Itanium (GCC, Clang), MS and MinGW
- Virtual table overriding support
- Multiple inheritance support
- Easily extensible semantics via user passes
- Work-in-progress support for STL
- Strongly-typed customization APIs and type maps
Mirrors the Clang's C++ AST and type system classes in C# APIs.
Check out Clang's AST introduction docs if you're not familiar with the architecture.
- C++ declarations
- C++ types
- Class object layout
- Declaration visitors
- Type visitors
Provides APIs for parsing C++ source code.
- Parsing of C++ source code
- Parsing of libraries archives symbols
- Parsing of shared libraries symbols
- Based on the very accurate Clang C++ parser.
Mailing list: Google group
Build bot (CI): builds.tritao.eu
The documentation is still a work-in-progress, please see the following resources for more information:
-
November 11th 2013 - Released a new version (423) with bug fixes for type maps (when used with template specializations), constructors renaming and better documentation generation.
-
November 5th 2013 - Released a new version (329) with a lot of bug fixes for operators and vtables.
-
September 22nd 2013 - Conversion (type cast) operators wrapped (thanks to @ddobrev)
-
September 21st 2013 - Multiple inheritance now supported (thanks to @ddobrev)
-
September 11th 2013 - Added wrapping of inlined functions (thanks to @ddobrev)
-
September 11th 2013 - New binaries available for Windows (VS2012)