CppSharp
cppcomponents
Our great sponsors
CppSharp | cppcomponents | |
---|---|---|
3 | 3 | |
2,986 | 205 | |
1.6% | - | |
7.9 | 0.0 | |
3 days ago | almost 7 years ago | |
C# | C++ | |
MIT License | Boost Software License 1.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
CppSharp
-
Recommendation for software to aid with creating a C# wrapper around a c++ library
Or take a look at the tools CppSharp or SWIG, s.a. Example for SWIG to wrap C++ library in .Net 6.
- Tools and libraries to glue C/C++ APIs to high-level languages
-
COM or C++/CLI layer for long-term maintenance?
I would give CppSharp a crack first. It generates a .net wrapper using pinvoke.
cppcomponents
-
COM+ Revisited
A few years back, I wanted to see what you could do if you really used modern C++ with the COM principles. This is what I came up with:
https://github.com/jbandela/cppcomponents
* There is no code generation or IDL files
* Components implement IUnknown
* You can have Constructors and static functions for C++ classes.
* You can take std::vector, std::string, std::tuple as parameters and return them (even if you are using different compilers and standard libraries)
* Cross-platform
-
COM or C++/CLI layer for long-term maintenance?
You may find https://github.com/jbandela/cppcomponents useful. A portable C++11 library allowing COM components to be created from a C++ library. Note the portable, you can 100% make COM components on POSIX as well.
-
Satya Das - CIB - ABI stable architecture for a C++ SDK - Meeting C++ online
jbandela/cppcomponents: Allows you to write binary components in C++11 that can be used across different compilers and standard libraries (github.com)
What are some alternatives?
SWIG - SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.
CsWin32 - A source generator to add a user-defined set of Win32 P/Invoke methods and supporting types to a C# project.
CefSharp - .NET (WPF and Windows Forms) bindings for the Chromium Embedded Framework
ComLightInterop - Cross-platform COM interop library for .NET Core 2.1 or newer
pinvoke - A library containing all P/Invoke code so you don't have to import it every time. Maintained and updated to support the latest Windows OS.
PythonNet - Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers.
Sharpen - Sharpen is an Eclipse plugin created by db4o that allows you to convert your Java project into c#
CXXI - C++ interop framework
PInvoke Interop Assistant - PInvoke Interop Assistant
LegacyWrapper - LegacyWrapper uses a x86 wrapper to call legacy dlls from a 64 bit process (or vice versa).
libffi - A portable foreign-function interface library.
V8 - The official mirror of the V8 Git repository