CppSharp 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package CppSharp --version 1.0.0
NuGet\Install-Package CppSharp -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CppSharp" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CppSharp --version 1.0.0
#r "nuget: CppSharp, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install CppSharp as a Cake Addin
#addin nuget:?package=CppSharp&version=1.0.0

// Install CppSharp as a Cake Tool
#tool nuget:?package=CppSharp&version=1.0.0

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.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.1 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on CppSharp:

Package Downloads
Spout.NET

Spout.NET is a C# .NET Implementation for Spout2, A video frame sharing system.

GitHub repositories (7)

Showing the top 5 popular GitHub repositories that depend on CppSharp:

Repository Stars
tooll3/t3
Tooll 3 is an open source software to create realtime motion graphics.
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
allisterb/jemalloc.NET
A native memory manager for .NET
sdcb/OpenVINO.NET
High quality .NET wrapper for OpenVINO™ toolkit.
Version Downloads Last updated
1.1.5.3168 18,257 10/18/2023
1.1.1.10805 7,415 10/18/2023
1.0.76.8341 8,290 10/18/2023
1.0.54.626 16,740 5/31/2023
1.0.45.22293 19,444 2/6/2023
1.0.1 50,965 12/30/2021
1.0.0 16,938 10/12/2021
0.11.2 20,358 2/4/2021
0.11.1 9,128 2/3/2021
0.11.0 9,237 1/29/2021
0.10.5 25,104 6/27/2020
0.10.4 2,305 5/23/2020
0.10.3 4,467 4/9/2020
0.10.2 5,804 3/28/2020
0.10.1 7,410 7/4/2019
0.10.0 2,746 6/25/2019
0.9.2 2,718 5/7/2019
0.9.1 2,347 4/13/2019
0.9.0 7,863 3/1/2019
0.8.23 2,605 1/31/2019
0.8.22 4,373 9/24/2018
0.8.21 3,131 8/1/2018
0.8.20 3,011 5/25/2018
0.8.19 3,439 2/4/2018
0.8.18 3,429 1/27/2018
0.8.17 2,910 12/25/2017
0.8.16 3,065 11/10/2017
0.8.15 2,481 11/7/2017
0.8.14 4,064 9/17/2017
0.8.13 2,881 7/18/2017
0.8.12 2,459 7/18/2017
0.8.11 3,197 6/4/2017
0.8.10 2,907 4/23/2017
0.8.9 2,517 4/16/2017
0.8.8 2,430 4/9/2017
0.8.7 2,632 3/27/2017
0.8.6 2,804 3/4/2017
0.8.5 2,472 3/4/2017
0.8.4 3,297 2/10/2017
0.8.3 2,558 2/5/2017
0.8.2 2,519 1/25/2017
0.8.1 2,509 1/22/2017
0.8.0 2,314 1/22/2017
0.7.13 2,465 1/16/2017
0.7.12 2,777 11/17/2016
0.7.11 2,412 11/13/2016
0.7.10 2,348 11/11/2016
0.7.9 2,525 11/2/2016
0.7.8 2,372 11/1/2016
0.7.7 2,607 11/1/2016
0.7.6 2,479 10/28/2016
0.7.5 2,383 10/27/2016
0.7.4 2,435 10/25/2016
0.7.3 2,428 10/1/2016
0.7.2 2,707 9/17/2016
0.7.1 2,396 9/13/2016
0.7.0 2,358 9/12/2016
0.6.0 2,345 6/24/2016
0.5.2 2,362 6/17/2016
0.5.1 2,274 6/17/2016
0.5.0 2,440 6/14/2016

- Add built-in compilation of extra symbols

- Fix naming for function pointers with strings

- Ignore external (no module) translation units

- Fix instantiation of specializations not to crash

- Generate valid C# for default args: typedefed refs to enums assigned empty ctors

- Extend finding of functions to also get overloads

- Ensure valid C# for default args assigned secondary bases

- Generate valid C++ for protected ctors of pure classes

- Generate valid C# for constants in namespaceless modules

- Generate valid C# for types nested in external typedef-ed specializations

- Generate valid C# with explicit external specializations

- Fix templated indexers returning objects

- Generate valid C# for specializations in default args

- Generate valid C++ for pure implemented dtors

- Free returned by value instances, not object ones

- Generate valid C# for forwarded specializations

- Bind default constructors with dependent pointers

- Generate valid C# for setters returning Booleans

- Place returns as needed without an extra block

- Generate valid C# for default params in specialisations

- Resolve overloads with typedef-ed mapped params

- Generate C++ deconflicted with system functions (#1626)

- Don't print tags for nameless and typedef classes

- Fix C4099 (class as struct) in generated C++/CLI

- Bind the tag kind (struct, class, enum) of a type

- Regenerate the parser bindings

- Delete the C++ copy when returning by value (#1623)

- Delete the longer needed patching of msvc headers

- Don't evaluate dependent variables

- Delete the longer needed patching of msvc headers

- Update LLVM to the latest version

- Fix for "vector subscript out of range" exception (#1621)

- Fix incorrect dtor call for non-owned instances (#1615)

- Fix regressed marshalling of lists in C++/CLI

- Fix for Visual Studio 2019 16.10 (#1614)

- Generate valid C# for public fields of typedef-ed primitive pointer

- Resolve names matching those of system functions

- Add a mechanism to selectively initialize allocated unmanaged memory in the default constructor.

- Much improved support for marshaling const char* to string

- Enhanced ExpressionEvaluator to return implicitly typed uint, long, and ulong values from EvaluateNumber when there is no literal type suffix applied to a numeric expression string.

- Attempt to resolve a GitHub CI Actions isue: CI is currently failing because restore can't find NUnit and friends. The error message and google search indicate that GitHub Actions is only looking in the "Microsoft Visual Studio Offline Packages" cache. Add a nuget.config file to in an attempt to tell GitHub Actions to query nuget.org in addition to the offline cache.

- bug fix: When generating the get accessor for a field composed of an embedded array of structs use __GetOrCreateInstance to initialize the managed array wrapper rather than __CreateInstance so that __Instance holds a pointer to the memory allocated for the array in the outer struct rather than an independent copy of that memory.

- Repaired broken alignment padding generation for structs with embedded arrays of structs

- Generate comments for field

- Fix the regressed generation of C++ for variables

- Add work-in-progress TypeScript interface bindings generator.

- Add MarkEventsWithUniqueIdPass pass for global event handling.

- Maintain DeclarationsList integrity by clearing item offsets.

- Add CppSharp VS Code workspace.

- Implement two-step initialization for QuickJS.

- Add QuickJS runtime project and initial features.

- Improve support for default arguments in NAPI generator.

- Add support for generation of default argument expressions in C generator.

- Add experimental GenerateExternalDataFields option and supporting code.

- Add C code generator GenerateClassEvents for common event handling.

- Introduce a scope kind stack for type printers.

- Rework C enum generation for more accurate handling.

- Add convenience constructor to ArrayType.

- Create target directory when generating files.

- Add new pass to convert C++ FastDelegate types into CppSharp delegates.