Пример #1
0
    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);
    }
Пример #2
0
 public static extern string mono_return_struct_4_double(IntPtr ptr, Rectangle rect, Scalar4 sc4, int a, int b, int c);