CppSharp 0.8.23
See the version list below for details.
dotnet add package CppSharp --version 0.8.23
NuGet\Install-Package CppSharp -Version 0.8.23
<PackageReference Include="CppSharp" Version="0.8.23"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="CppSharp" Version="0.8.23" />
<PackageReference Include="CppSharp"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add CppSharp --version 0.8.23
#r "nuget: CppSharp, 0.8.23"
#:package CppSharp@0.8.23
#addin nuget:?package=CppSharp&version=0.8.23
#tool nuget:?package=CppSharp&version=0.8.23
CppSharp is a tool and set of libraries which allows programmers to use C/C++ libraries with high-level programming languages (such as C#).
It is a tool that takes C/C++ header and library files and generates the necessary glue to surface the native API as a managed API. Such an API can be used to consume an existing native library in your high-level code or add 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 a rich declaration and type information model.
The NuGet version is Windows 64-bit only for the time being. Binary 32-bit releases for Windows can be found at https://github.com/mono/CppSharp/releases .
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET Framework | net is compatible. |
-
- Baseclass.Contrib.Nuget.Output (>= 2.4.1)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on CppSharp:
| Package | Downloads |
|---|---|
|
Spout.NET
Spout.NET is a C# .NET Implementation for Spout2, A video frame sharing system. |
|
|
BindingGenerator
CppSharp based binding generator for dotnet |
|
|
Spout.NETCore
Package to invoke spout from c# |
GitHub repositories (6)
Showing the top 6 popular GitHub repositories that depend on CppSharp:
| Repository | Stars |
|---|---|
|
Ruslan-B/FFmpeg.AutoGen
FFmpeg auto generated unsafe bindings for C#/.NET and Core (Linux, MacOS and Mono).
|
|
|
ddobrev/QtSharp
Mono/.NET bindings for Qt
|
|
|
sdcb/OpenVINO.NET
High quality .NET wrapper for OpenVINO™ toolkit.
|
|
|
sdcb/Sdcb.FFmpeg
FFmpeg basic .NET API generated by CppSharp
|
|
|
allisterb/jemalloc.NET
A native memory manager for .NET
|
|
|
Dtronix/PDFiumCore
.NET Standard P/Invoke bindings for PDFium.
|
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 1.1.84.17100 | 1,339 | 11/19/2025 | |
| 1.1.5.3168 | 77,721 | 10/18/2023 | |
| 1.1.1.10805 | 7,923 | 10/18/2023 | |
| 1.0.76.8341 | 8,764 | 10/18/2023 | |
| 1.0.54.626 | 34,291 | 5/31/2023 | |
| 1.0.45.22293 | 29,932 | 2/6/2023 | |
| 1.0.1 | 63,031 | 12/30/2021 | |
| 1.0.0 | 19,544 | 10/12/2021 | |
| 0.11.2 | 21,449 | 2/4/2021 | |
| 0.11.1 | 9,506 | 2/3/2021 | |
| 0.11.0 | 9,719 | 1/29/2021 | |
| 0.10.5 | 35,579 | 6/27/2020 | |
| 0.10.4 | 2,673 | 5/23/2020 | |
| 0.10.3 | 4,855 | 4/9/2020 | |
| 0.10.2 | 6,207 | 3/28/2020 | |
| 0.10.1 | 8,020 | 7/4/2019 | |
| 0.10.0 | 3,299 | 6/25/2019 | |
| 0.8.23 | 2,951 | 1/31/2019 |
* Keep Clang libTooling libs when packaging LLVM.
* Improve error handling in build scripts `UseClang()`.
* Added .NET Core build folder to Git Ignore .
* Initial integration of Clang AST viewer GUI tool.
* Made an exception serializable and removed another.
* Fixed the warnings in the test C++ for C# only.
* Fixed a crash when parsing libraries on macOS.
* Fixed error handling when parsing non-existent libraries.
* Added support for building with Clang and LLD.
* Switched to use csc.exe Roslyn compiler under Mono
* Disable most of the support for explicit pre-C++11 ABI since we do not need it anymore
* Fixed warnings in native test code.
* Fixed the generation of dependent virtual methods.
* Fixed overloading of operators with parameters mapped to the same type.
* Extended the type maps for primitive strings to C++/CLI.
* Handled int and long in maps to help resolve ambiguity.
* Simplified type maps by unlinking them from declarations.
* Properly hashed types to optimize their storage in maps.
* Fixed right-value references creating ambiguous overloads.
* Fixed the generated code in a case of ambiguous overloads.
* Added type maps for primitive strings (pointers to char).
* Added an option for skipping private declarations.
* Tested indirect calls from native code of overrides in the target language.
* Initial support for building under .NET Core.
* Updated the CI on Linux to use GCC 7.
* Exported all additional symbols on macOS.
* Fixed error handling and message when parsing non-existent files.
* Added a test for passing an std::string by value.
* Fixed the marshalling of std::string with GCC 6+ on Linux.
* Added a type map for char.
* Make Windows10SDK detection more robust
* Cached found type maps for faster look-ups.
* Deleted unused and slow code.
* Fixed the parsing of functions with integral template args.
* Decreased the build time on the Linux CI.
* Fixed a crash when parsing type aliases.
* Fixed the build of the parser when its path has spaces.
* Changed type maps to only return types - no strings.
* Simplified type maps by using static objects to disable as needed.
* Optimized the walking of the managed AST.
* Optimized the generation of C# by not splitting any strings.
* Optimized the walking of the AST by simplifying its search.
* Fixed the late parsing of templates.
* Fixed LLVM/Clang tar.gz archive extraction using 7-Zip on Windows.
* Fixed Windows SDK version detection in build scripts.
* Resolved ambiguity between char-like types in the generated C#.
* Fixed the generated C# for templates with > 1 ctor taking a pointer to a class.
* Fixed the generated C# for pure virtual functions with default arguments.
* Fixed the generated C# for default arguments of type pointer to a function.
* Fixed the generated C# for a certain case of two default parameters.
* Fixed the generated C# for arguments with default values of "nullptr".
* Fixed the generated C# for setters with default parameters.
* Fixed the generated C# for public fields with types mapped to primitive.
* Fixed the generated C# for constant references to primitives.
* Upgraded the CI script to use Ubuntu 16.04.
* Fixed ambiguity when the type of a parameter is mapped to a type in an overload.