CppSharp

Tools to surface C++ APIs to C#

4 years after

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

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)

Related Repositories

awesome-dotnet

awesome-dotnet

A collection of awesome .NET libraries, tools, frameworks and software ...

awesome-dotnet-cn

awesome-dotnet-cn

DotNet 资源大全中文版,内容包括:编译器、压缩、应用框架、应用模板、加密、数据库、反编译、IDE、日志、风格指南等。 ...

QtSharp

QtSharp

Mono/.NET bindings for Qt ...

awesome-dotnet

awesome-dotnet

A collection of awesome .NET libraries, tools, frameworks and software ...

awesome-dotnet

awesome-dotnet

A collection of awesome .NET libraries, tools, frameworks and software ...


Top Contributors

tritao ddobrev esdrubal chkn azeno tomba tomspilman shana oysteinkrog vargaz tapika sk-havok vovkasm mydogisbox terite ForNeVeR gpetrou