- Notifications
You must be signed in to change notification settings - Fork527
Tools and libraries to glue C/C++ APIs to high-level languages
License
mono/CppSharp
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
CppSharp is a tool and set of libraries which facilitates the usage of native C/C++ codewith the .NET ecosystem.
It consumes C/C++ header and library files and generates thenecessary glue code to surface the native API as a managed API. Such an API can beused to consume an existing native library in your managed code or addmanaged scripting support to a native codebase.
The supported target languages at present are C# and C++/CLI.
It can also be used as a library to parse native code into a syntax tree with arich declaration and type information model.
NuGet Packages | Continuous Integration |
---|---|
Mirrors the Clang's C/C++ AST and type system classes in C# APIs.
Check outClang's AST introduction docs for more details about its architecture.
- C++ declarations
- C++ statements / expressions
- C++ types
- Class object layout
- Declaration visitors
- Type visitors
Provides APIs for parsing of C/C++ source code into a syntax tree.
- Parsing of C/C++ source code
- Parsing of libraries archives symbols
- Parsing of shared libraries symbols
- Based on the very accurate Clang C++ parser.
Generates the glue binding code from a syntax tree of the native code.
- Multiple backends: C++/CLI and C# (P/Invoke)
- Multiple ABIs: Itanium, MS, ARM, iOS
- Multiple platforms: Windows, OS X and Linux
- Multiple runtimes: .NET and Mono
- C++ virtual methods overriding from managed code
- C++ multiple inheritance by translating to C# interfaces
- C++ std::string
- C++ default parameter values
- C/C++ semantic comments (Doxygen) to C# comments
- Extensible bindings semantics via user passes and type mapping
Please see the following resources for more information:
Feel free to open up issues on GitHub for any problems you find.
If you need commercial support feel free to open a discussion or issue for discussion.
CppSharp is used by the following projects:
Please feel free to send us a pull request adding your own projects to the list above.
About
Tools and libraries to glue C/C++ APIs to high-level languages
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.