cppcomponents
CppSharp
cppcomponents | CppSharp | |
---|---|---|
3 | 3 | |
212 | 3,199 | |
- | 0.7% | |
0.0 | 8.0 | |
almost 8 years ago | 17 days ago | |
C++ | C# | |
gtkbook License | MIT License |
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.
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)
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.
What are some alternatives?
CsWin32 - A source generator to add a user-defined set of Win32 P/Invoke methods and supporting types to a C# project.
SWIG - SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.
ComLightInterop - Cross-platform COM interop library for .NET Core 2.1 or newer
CXXI - C++ interop framework
CefSharp - .NET (WPF and Windows Forms) bindings for the Chromium Embedded Framework
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.