diff --git a/src/Generator/Generators/CLI/CLIMarshal.cs b/src/Generator/Generators/CLI/CLIMarshal.cs index 8b7145bd..03977ec9 100644 --- a/src/Generator/Generators/CLI/CLIMarshal.cs +++ b/src/Generator/Generators/CLI/CLIMarshal.cs @@ -187,6 +187,9 @@ namespace CppSharp.Generators.CLI public override bool VisitClassDecl(Class @class) { + if (@class.CompleteDeclaration != null) + return VisitClassDecl(@class.CompleteDeclaration as Class); + var instance = string.Empty; if (!Context.ReturnType.Type.IsPointer()) @@ -494,6 +497,9 @@ namespace CppSharp.Generators.CLI public override bool VisitClassDecl(Class @class) { + if (@class.CompleteDeclaration != null) + return VisitClassDecl(@class.CompleteDeclaration as Class); + if (@class.IsValueType) { MarshalValueClass(@class); diff --git a/src/Generator/Generators/CLI/CLITypePrinter.cs b/src/Generator/Generators/CLI/CLITypePrinter.cs index 978afc94..22e16ac2 100644 --- a/src/Generator/Generators/CLI/CLITypePrinter.cs +++ b/src/Generator/Generators/CLI/CLITypePrinter.cs @@ -278,6 +278,9 @@ namespace CppSharp.Generators.CLI public string VisitClassDecl(Class @class) { + if (@class.CompleteDeclaration != null) + return VisitClassDecl(@class.CompleteDeclaration as Class); + return string.Format("{0}{1}", @class.Name, @class.IsRefType ? "^" : string.Empty); }