static int Main() { if (mono_return_int(5) != 5) { return(1); } ss s1; s1.i1 = 4; if (mono_return_int_ss(s1) != 4) { return(2); } s1 = mono_return_ss(s1); if (s1.i1 != 5) { return(3); } su s2; s2.i1 = 2; s2.i2 = 3; if (mono_return_int_su(s2) != 3) { return(4); } s2.i1 = 2; if (mono_return_int_su(s2) != 2) { return(5); } cs s3; s3.b1 = false; s3.i1 = 12; s3.u1.i1 = 2; s3.u1.i2 = 1; if (mono_union_test_1(s3) != 13) { return(6); } s3.u1.i1 = 2; if (mono_union_test_1(s3) != 14) { return(7); } s3.b1 = true; if (mono_union_test_1(s3) != 15) { return(8); } sc1 s4; s4.c0 = 3; s4 = mono_return_sc1(s4); if (s4.c0 != 4) { return(9); } sc3 s5; s5.c0 = 4; s5.c1 = 5; s5.c2 = 6; s5 = mono_return_sc3(s5); if (s5.c0 != 5 || s5.c1 != 7 || s5.c2 != 9) { return(10); } sc5 s6; s6.c0 = 4; s6.c1 = 5; s6.c2 = 6; s6.c3 = 7; s6.c4 = 8; s6 = mono_return_sc5(s6); if (s6.c0 != 5 || s6.c1 != 7 || s6.c2 != 9 || s6.c3 != 11 || s6.c4 != 13) { return(11); } var f = mono_return_nested_float(); if (f.fi.f1 != 1.0) { return(12); } Rectangle rect = new Rectangle(10, 10, 100, 20); Scalar4 sc4 = new Scalar4(32, 64, 128, 256); var sc4_ret = mono_return_struct_4_double(IntPtr.Zero, rect, sc4, 0x1337, 0x1234, 0x9876); if (sc4_ret != "sc4 = {32.0, 64.0, 128.0, 256.0 }, a=1337, b=1234, c=9876\n") { Console.WriteLine("sc4_ret = " + sc4_ret); return(13); } return(0); }
public static extern string mono_return_struct_4_double(IntPtr ptr, Rectangle rect, Scalar4 sc4, int a, int b, int c);