Browse Source

Added marshaling of function types to C# backend.

pull/224/head
triton 12 years ago
parent
commit
fec8b00d8e
  1. 12
      src/Generator/Generators/CSharp/CSharpMarshal.cs

12
src/Generator/Generators/CSharp/CSharpMarshal.cs

@ -231,6 +231,18 @@ namespace CppSharp.Generators.CSharp @@ -231,6 +231,18 @@ namespace CppSharp.Generators.CSharp
return decl.Type.Visit(this);
}
public override bool VisitFunctionType(FunctionType function, TypeQualifiers quals)
{
var ptrName = Generator.GeneratedIdentifier("ptr") + Context.ParameterIndex;
Context.SupportBefore.WriteLine("var {0} = {1};", ptrName,
Context.ReturnVarName);
Context.Return.Write("({1})Marshal.GetDelegateForFunctionPointer({0}, typeof({1}))",
ptrName, function.ToString());
return true;
}
public override bool VisitClassDecl(Class @class)
{
var ctx = Context as CSharpMarshalContext;

Loading…
Cancel
Save