CppSharp
CppSharp 是一个工具和一组库,它有助于使用本机 C/C++ 代码 与 .NET 生态系统一起使用。 它使用 C/C++ 标头和库文件并生成 必要的粘合代码,以将本机 API 显示为托管 API。这样的 API 可以是 用于使用托管代码中的现有本机库或添加 对本机代码库的托管脚本支持。 目前支持的目标语言是 C# 和 C++/CLI。 它也可以用作库,将本机代码解析为语法树,并使用 丰富的声明和类型信息模型。
Install / Use
/learn @dorisoy/CppSharpREADME
CppSharp is a tool and set of libraries which facilitates the usage of native C/C++ code with the .NET ecosystem.
It consumes C/C++ header and library files and generates the necessary glue code to surface the native API as a managed API. Such an API can be used to consume an existing native library in your managed code or add managed 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.
Releases/Build Status
| NuGet Packages | Continuous Integration |
|---------------------------|---------------------------|
| |
Libraries
AST
Mirrors the Clang's C/C++ AST and type system classes in C# APIs.
Check out Clang's AST introduction docs for more details about its architecture.
- C++ declarations
- C++ statements / expressions
- C++ types
- Class object layout
- Declaration visitors
- Type visitors
Parser
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.
Generator
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
Documentation
Please see the following resources for more information:
Community
Feel free to open up issues on GitHub for any problems you find.
Support
If you need commercial support feel free to open a discussion or issue for discussion.
Users
CppSharp is used by the following projects:
Please feel free to send us a pull request adding your own projects to the list above.
Related Skills
node-connect
339.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.9kCommit, push, and open a PR
