public static int Main(string[] args) { try { float width = 1.0f; float height = 2.0f; CdeclMemberFunctionNative.C *instance = CdeclMemberFunctionNative.CreateInstanceOfC(width, height); Test8ByteHFA(instance); Test4ByteHFA(instance); Test4ByteNonHFA(instance); TestEnum(instance); TestCLong(instance); Test8ByteHFAUnmanagedCallersOnly(); Test4ByteHFAUnmanagedCallersOnly(); Test4ByteNonHFAUnmanagedCallersOnly(); TestEnumUnmanagedCallersOnly(); TestCLongUnmanagedCallersOnly(); } catch (System.Exception ex) { Console.WriteLine(ex); return(101); } return(100); }
private static void Test8ByteHFA(CdeclMemberFunctionNative.C *instance) { CdeclMemberFunctionNative.SizeF result = instance->vtable->getSize(instance, 1234); Assert.AreEqual(instance->width, result.width); Assert.AreEqual(instance->height, result.height); }
private static CdeclMemberFunctionNative.Width GetWidth(CdeclMemberFunctionNative.C *c) { return(new CdeclMemberFunctionNative.Width { width = c->width }); }
private static CdeclMemberFunctionNative.IntWrapper GetHeightAsInt(CdeclMemberFunctionNative.C *c) { return(new CdeclMemberFunctionNative.IntWrapper { i = (int)c->height }); }
private static CdeclMemberFunctionNative.SizeF GetSize(CdeclMemberFunctionNative.C *c, int unused) { return(new CdeclMemberFunctionNative.SizeF { width = c->width, height = c->height }); }
private static CLong GetWidthAsLong(CdeclMemberFunctionNative.C *c) { return(new CLong((nint)c->width)); }
private static CdeclMemberFunctionNative.E GetE(CdeclMemberFunctionNative.C *c) { return(c->dummy); }
private static void TestCLong(CdeclMemberFunctionNative.C *instance) { CLong result = instance->vtable->getWidthAsLong(instance); Assert.AreEqual((nint)instance->width, result.Value); }
private static void TestEnum(CdeclMemberFunctionNative.C *instance) { CdeclMemberFunctionNative.E result = instance->vtable->getE(instance); Assert.AreEqual(instance->dummy, result); }
private static void Test4ByteNonHFA(CdeclMemberFunctionNative.C *instance) { CdeclMemberFunctionNative.IntWrapper result = instance->vtable->getHeightAsInt(instance); Assert.AreEqual((int)instance->height, result.i); }
private static void Test4ByteHFA(CdeclMemberFunctionNative.C *instance) { CdeclMemberFunctionNative.Width result = instance->vtable->getWidth(instance); Assert.AreEqual(instance->width, result.width); }