2 using System.Runtime.InteropServices;
6 [StructLayout (LayoutKind.Sequential)]
7 public struct SimpleStruct {
14 [DllImport ("libtest.so", EntryPoint="mono_test_return_vtype2")]
15 public static extern SimpleStruct mono_test_return_vtype2 (ReturnVTypeDelegate d);
17 public static SimpleStruct managed_return_vtype (SimpleStruct ss) {
20 Console.WriteLine ("delegate called");
21 Console.WriteLine ("A: " + ss.a);
22 Console.WriteLine ("B: " + ss.b);
23 Console.WriteLine ("C: " + ss.c);
24 Console.WriteLine ("D: " + ss.d);
34 public delegate SimpleStruct ReturnVTypeDelegate (SimpleStruct ss);
36 public static int Main () {
37 ReturnVTypeDelegate d = new ReturnVTypeDelegate (managed_return_vtype);
38 SimpleStruct ss = mono_test_return_vtype2 (d);
40 Console.WriteLine ("A: " + ss.a);
41 Console.WriteLine ("B: " + ss.b);
42 Console.WriteLine ("C: " + ss.c);
43 Console.WriteLine ("D: " + ss.d);
45 if (!ss.a && ss.b && !ss.c && ss.d == "TEST5")