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 c1f5010410 Added explanation for 64-bit binaries 10 years ago
build Improved premake scripts for tests. 10 years ago
deps Added missing unit testing dependencies. 12 years ago
docs Added explanation for 64-bit binaries 10 years ago
examples Kill the old parser (good riddance :). 11 years ago
include Added a cast to get rid of a warning. 11 years ago
patches Removed outdated patches. 11 years ago
src Restored the full qualifying when printing types. 10 years ago
tests Moved the improved test for friends to Basic because it's not C#-specific. 10 years ago
.gitattributes Add .gitattributes 11 years ago
.gitignore Update .gitignore to include vs2013 build folder 11 years ago
LICENSE Update the license information. 12 years ago
README.md Added a note about building wrappers and consulting. 11 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.