diff --git a/src/Generator/Generators/CLI/CLIHelpers.cs b/src/Generator/Generators/CLI/CLIHelpers.cs index 231f2237..07938eb1 100644 --- a/src/Generator/Generators/CLI/CLIHelpers.cs +++ b/src/Generator/Generators/CLI/CLIHelpers.cs @@ -438,6 +438,10 @@ namespace Cxxi.Generators.CLI { for (var i = 0; i < method.Parameters.Count; ++i) { + if (method.Conversion == MethodConversionType.FunctionToInstanceMethod + && i == 0) + continue; + var param = method.Parameters[i]; Write("{0}", TypeSig.GetArgumentString(param)); if (i < method.Parameters.Count - 1) diff --git a/src/Generator/Generators/CLI/CLIMarshal.cs b/src/Generator/Generators/CLI/CLIMarshal.cs index 8a801f3c..100b7f15 100644 --- a/src/Generator/Generators/CLI/CLIMarshal.cs +++ b/src/Generator/Generators/CLI/CLIMarshal.cs @@ -436,6 +436,15 @@ namespace Cxxi.Generators.CLI if (!Context.Parameter.Type.IsPointer()) Return.Write("*"); + var method = Context.Function as Method; + if (method != null + && method.Conversion == MethodConversionType.FunctionToInstanceMethod + && Context.ParameterIndex == 0) + { + Return.Write("NativePtr"); + return true; + } + Return.Write("{0}->NativePtr", Context.Parameter.Name); }