Tools and libraries to glue C/C++ APIs to high-level languages
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
triton b03a73efa8 Added a cast to get rid of a warning. 11 years ago
build Added SetupLLVMIncludes in build files. 11 years ago
deps Added missing unit testing dependencies. 12 years ago
docs Remove outdated documentation. 11 years ago
examples Updated build scripts with OS X fixes and added some building documentation. 12 years ago
include Added a cast to get rid of a warning. 11 years ago
patches Added the skeleton of a patch for Clang that adds support for the new type traits in VS 2013. 12 years ago
src Synced new and old parser. 11 years ago
tests Merge pull request #229 from azeno/unnamed-enum-support 11 years ago
.gitignore Update .gitignore to include vs2013 build folder 11 years ago
LICENSE Update the license information. 12 years ago
README.md Updated readme. 12 years ago

README.md

CppSharp is a collection of libraries for working with C++ code from .NET.

Generator

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

AST

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

Parser

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.

Community

Mailing list: Google group

Build bot (CI): builds.tritao.eu

Documentation

The documentation is still a work-in-progress, please see the following resources for more information:

Getting Started

User's Manual

Developer's Manual

Releases

VS2012 32-bit:

News

  • 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)