Here are some screen shots of NGenerator, A C# .NET Wrapper Generator for Native C++ DLL.
It is quite simple to use NGenerator which takes care of everything of generating a C# .NET wrapper for native C++ DLL.
When you want to create a C# wrapper for native C++ DLL, you simply need to create a new project by telling where the DLL files and the header files are, the DLL file and the header files are the only requirements of NGenerator.
You can also fine tune your C# method signature by using type marshaling designer as the following picture shows. Most of the C++ data type should have already been converted to the correct corresponding C# types. For example, a C++ const int * type shall be converted to [in] int in C#, a int * type shall be converted to [in, out] int,
Once you apply the change and exit the type marshaling designer, the C# wrapper source code will be re-generated.
The C# source code it auto-generated looks like exactly what you would write manually.
The following screen shot is the UI when the type marshaling designer is dismissed and the new implementation of SetRect method was being displayed.