Browse Source

Fixed the wrapping of functions taking a function pointer.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
pull/48/merge
Dimitar Dobrev 13 years ago committed by triton
parent
commit
734b1377f0
  1. 3
      src/Generator/Generators/CSharp/CSharpTypePrinter.cs
  2. 2
      tests/Basic/Basic.cpp
  3. 2
      tests/Basic/Basic.h

3
src/Generator/Generators/CSharp/CSharpTypePrinter.cs

@ -120,6 +120,9 @@ namespace CppSharp.Generators.CSharp @@ -120,6 +120,9 @@ namespace CppSharp.Generators.CSharp
if (arguments.Count > 0)
args = VisitParameters(function.Parameters, hasNames: false).Type;
if (ContextKind != CSharpTypePrinterContextKind.Managed)
return "global::System.IntPtr";
if (returnType.Type.IsPrimitiveType(PrimitiveType.Void))
{
if (!string.IsNullOrEmpty(args))

2
tests/Basic/Basic.cpp

@ -71,7 +71,7 @@ int Hello::RetEnum(Enum e) @@ -71,7 +71,7 @@ int Hello::RetEnum(Enum e)
return (int)e;
}
int unsafeFunction(const Bar& ret, char* testForString)
int unsafeFunction(const Bar& ret, char* testForString, void (*foo)(int))
{
return ret.A;
}

2
tests/Basic/Basic.h

@ -73,4 +73,4 @@ public: @@ -73,4 +73,4 @@ public:
DLL_API Bar operator+(const Bar &, const Bar &);
int DLL_API unsafeFunction(const Bar& ret, char* testForString);
int DLL_API unsafeFunction(const Bar& ret, char* testForString, void (*foo)(int));

Loading…
Cancel
Save