Example #1
0
 public static int Main(string[] args)
 {
     try
     {
         float             width    = 1.0f;
         float             height   = 2.0f;
         ThisCallNative.C *instance = ThisCallNative.CreateInstanceOfC(width, height);
         Test8ByteHFA(instance);
         Test4ByteHFA(instance);
         Test4ByteNonHFA(instance);
         TestEnum(instance);
         TestCLong(instance);
         Test8ByteHFAReverse();
         Test4ByteHFAReverse();
         Test4ByteNonHFAReverse();
         TestEnumReverse();
         TestCLongReverse();
         Test8ByteHFAUnmanagedCallersOnly();
         Test4ByteHFAUnmanagedCallersOnly();
         Test4ByteNonHFAUnmanagedCallersOnly();
         TestEnumUnmanagedCallersOnly();
         TestCLongUnmanagedCallersOnly();
     }
     catch (System.Exception ex)
     {
         Console.WriteLine(ex);
         return(101);
     }
     return(100);
 }
Example #2
0
 private static ThisCallNative.IntWrapper GetHeightAsInt(ThisCallNative.C *c)
 {
     return(new ThisCallNative.IntWrapper
     {
         i = (int)c->height
     });
 }
Example #3
0
 private static ThisCallNative.Width GetWidth(ThisCallNative.C *c)
 {
     return(new ThisCallNative.Width
     {
         width = c->width
     });
 }
Example #4
0
    private static unsafe void Test4ByteNonHFA(ThisCallNative.C *instance)
    {
        ThisCallNative.GetHeightAsIntFn callback = Marshal.GetDelegateForFunctionPointer <ThisCallNative.GetHeightAsIntFn>(instance->vtable->getHeightAsInt);

        ThisCallNative.IntWrapper result = callback(instance);

        Assert.AreEqual((int)instance->height, result.i);
    }
Example #5
0
    private static unsafe void Test4ByteHFA(ThisCallNative.C *instance)
    {
        ThisCallNative.GetWidthFn callback = Marshal.GetDelegateForFunctionPointer <ThisCallNative.GetWidthFn>(instance->vtable->getWidth);

        ThisCallNative.Width result = callback(instance);

        Assert.AreEqual(instance->width, result.width);
    }
Example #6
0
    private static void TestEnum(ThisCallNative.C *instance)
    {
        ThisCallNative.GetEFn callback = Marshal.GetDelegateForFunctionPointer <ThisCallNative.GetEFn>(instance->vtable->getE);

        ThisCallNative.E result = callback(instance);

        Assert.AreEqual(instance->dummy, result);
    }
Example #7
0
 private static ThisCallNative.SizeF GetSize(ThisCallNative.C *c, int unused)
 {
     return(new ThisCallNative.SizeF
     {
         width = c->width,
         height = c->height
     });
 }
Example #8
0
    private static void TestCLong(ThisCallNative.C *instance)
    {
        ThisCallNative.GetWidthAsLongFn callback = Marshal.GetDelegateForFunctionPointer <ThisCallNative.GetWidthAsLongFn>(instance->vtable->getWidthAsLong);

        CLong result = callback(instance);

        Assert.Equal((nint)instance->width, result.Value);
    }
Example #9
0
 private static ThisCallNative.SizeF GetSize(ThisCallNative.C* c)
 {
     return new ThisCallNative.SizeF
     {
         width = c->width,
         height = c->height
     };
 }
Example #10
0
    private static void Test8ByteHFA(ThisCallNative.C *instance)
    {
        ThisCallNative.GetSizeFn callback = Marshal.GetDelegateForFunctionPointer <ThisCallNative.GetSizeFn>(instance->vtable->getSize);

        ThisCallNative.SizeF result = callback(instance);

        Assert.AreEqual(instance->width, result.width);
        Assert.AreEqual(instance->height, result.height);
    }
Example #11
0
 public unsafe static int Main(string[] args)
 {
     try
     {
         float             width    = 1.0f;
         float             height   = 2.0f;
         ThisCallNative.C *instance = ThisCallNative.CreateInstanceOfC(width, height);
         Test8ByteHFA(instance);
         Test4ByteHFA(instance);
         Test4ByteNonHFA(instance);
     }
     catch (System.Exception ex)
     {
         Console.WriteLine(ex);
         return(101);
     }
     return(100);
 }
Example #12
0
    public unsafe static int Main(string[] args)
    {
        try
        {
            float                    width    = 1.0f;
            float                    height   = 2.0f;
            ThisCallNative.C *       instance = ThisCallNative.CreateInstanceOfC(width, height);
            ThisCallNative.GetSizeFn callback = Marshal.GetDelegateForFunctionPointer <ThisCallNative.GetSizeFn>(instance->vtable->getSize);

            ThisCallNative.SizeF result = callback(instance);

            Assert.AreEqual(width, result.width);
            Assert.AreEqual(height, result.height);
        }
        catch (System.Exception ex)
        {
            Console.WriteLine(ex);
            return(101);
        }
        return(100);
    }
Example #13
0
 private static CLong GetWidthAsLong(ThisCallNative.C *c)
 {
     return(new CLong((nint)c->width));
 }
Example #14
0
 private static ThisCallNative.E GetE(ThisCallNative.C *c)
 {
     return(c->dummy);
 }