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.
 
 
 
 
 
Pyry Kontio 8a85058c48 Implemented name importing & exporting. 12 years ago
build Improved premake scripts for tests. 12 years ago
deps Added missing unit testing dependencies. 14 years ago
docs Updated to LLVM/Clang revision 222533/222534. 12 years ago
examples Kill the old parser (good riddance :). 12 years ago
include Added a cast to get rid of a warning. 13 years ago
patches Removed outdated patches. 12 years ago
src Implemented name importing & exporting. 12 years ago
tests Implemented name importing & exporting. 12 years ago
.gitattributes Add .gitattributes 13 years ago
.gitignore Update .gitignore to include vs2013 build folder 13 years ago
LICENSE Update the license information. 14 years ago
README.md Added a note about building wrappers and consulting. 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, MS, ARM, iOS and iOS64
  • Multiple platforms: Windows, OS X and Linux
  • Virtual table overriding support
  • Multiple inheritance support
  • Easily extensible semantics via user passes
  • Work-in-progress support for STL (C++/CLI only)
  • 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

Building custom wrappers and consulting

Please contact @ddobrev.