Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tools to surface C++ APIs to C#
C# C++ Lua Ruby C Batchfile
branch: master

Fixed the multiple inheritance of nested types.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
latest commit 672f88df5a
@ddobrev ddobrev authored

README.md

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

It has multiple use cases, from parsing C++ code to automatically generating .NET bindings for wrapping C/C++ native code allowing interoperability with managed languages like C#.

This can be used to consume an existing native library in your managed code or add scripting support to a native codebase.

Build Status

windows-vs-x86
windows-vs-x86

Libraries

Generator

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

Documentation

Please see the following resources for more information:

Getting Started

User's Manual

Developer's Manual

Community

Mailing list: Google group

News

2nd, June 2015: We're having three students contributing to the project this summer, as part of Google Summer of Code.

  • Alexandre Esteves (@afesteves)
  • Dimitar Dobrev (@ddobrev)
  • Abhinav Tripathi (@genuinelucifer)

Support

For professional services related to building custom wrappers and consulting please contact @ddobrev.

Something went wrong with that request. Please try again.