CppSharp is a library that allows you to generate .NET bindings that wrap C/C++ code allowing interoperability with managed languages. This can be useful if you have an existing native codebase and want to add scripting support, or want to consume an existing native library in your managed code.
CppSharp is a collection of libraries for working with C++ code from .NET.
## News
### AST
* 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 <ahref="https://github.com/ddobrev">@ddobrev</a>)
* September 21st 2013 - Multiple inheritance now supported (thanks to <ahref="https://github.com/ddobrev">@ddobrev</a>)
Mirrors the Clang's C++ AST and type system classes in C# APIs.
* September 11th 2013 - Added wrapping of inlined functions (thanks to <ahref="https://github.com/ddobrev">@ddobrev</a>)
* September 11th 2013 - New binaries available for Windows (VS2012)
Check out [_Clang's AST introduction docs_](http://clang.llvm.org/docs/IntroductionToTheClangAST.html) if you're not familiar with the architecture.
The documentation is still a work-in-progress, please see the following resources for more information:
The documentation is still a work-in-progress, please see the following resources
for more information:
[Getting Started](docs/GettingStarted.md)
@ -32,34 +52,24 @@ The documentation is still a work-in-progress, please see the following resource
@@ -32,34 +52,24 @@ The documentation is still a work-in-progress, please see the following resource
[Developer's Manual](docs/DevManual.md)
## Why reinvent the wheel?
There are not many automated binding tools around, the only real alternative is SWIG. So how is it different from SWIG?
## Releases
* No need to generate a C layer to interop with C++.
* Based on an actual C++ parser (Clang) so very accurate.
* Understands C++ at the ABI (application binary interface) level
* Easily extensible semantics via user passes
* Strongly-typed customization APIs
* Can be used as a library
## Can I use it yet?
It is being used to bind "real-world" complex codebases successfully, so give it a shot.
VS2012 32-bit:
Since C and C++ provide such a wide array of features I'm sure there's still tonnes of bugs and unsupported edge cases, but give it a try and report any bugs you find and I'll try to fix them ASAP.
* 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 <ahref="https://github.com/ddobrev">@ddobrev</a>)
* September 21st 2013 - Multiple inheritance now supported (thanks to <ahref="https://github.com/ddobrev">@ddobrev</a>)