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.
 
 
 
 
 
Dimitar Dobrev db30cde06d Handled indirect return params in type maps. 11 years ago
build build: add linux premake5 binary 11 years ago
deps Added missing unit testing dependencies. 12 years ago
docs Remove the experimental warning from the OSX build as we're starting to use it in production. 11 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 Added reading of dependencies of DLL-s. 11 years ago
src Handled indirect return params in type maps. 11 years ago
tests Handled indirect return params in type maps. 11 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 Removed the releases section from the readme as they're so old as to be useless. 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 (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)