SkillAgentSearch skills...

CppPinvokeGenerator

A simple pinvoke generator based on CppAst to generate C# for C++

Install / Use

/learn @EgorBo/CppPinvokeGenerator
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

CppPinvokeGenerator

A simple pinvoke generator based on xoofx/CppAst to generate C# for C/C++

Let's say we have a C++ class:

class Calculator {
public:
     int add(int x, int y);
}

Since it's a class and add is an instance method, we need to make it DllImport-friendly:

EXPORTS(Calculator*) Calculator_Calculator() { return new Calculator(); }
EXPORTS(int) Calculator_add(Calculator* target, int x, int y);

Now we can easily bind it to C#:

public partial class Calculator : SafeHandle
{
    public IntPtr Handle { get; private set; }
    
    // API:
    public Calculator() => this.Handle = Calculator_Calculator();
    public int Add(int x, int y) => Calculator_add(Handle, x, y);
    
    // DllImports
    [DllImport("mylib")] private static extern int Calculator_add(IntPtr handle, int x, int y);
    [DllImport("mylib")] private static extern IntPtr Calculator_Calculator();
}

So the generator is able to generate C# classes and the C glue. As an example - see samples/SimdJson.

Nuget

dotnet add package CppPinvokeGenerator
View on GitHub
GitHub Stars35
CategoryDevelopment
Updated1mo ago
Forks7

Languages

C#

Security Score

90/100

Audited on Feb 20, 2026

No findings