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); }
private static ThisCallNative.IntWrapper GetHeightAsInt(ThisCallNative.C *c) { return(new ThisCallNative.IntWrapper { i = (int)c->height }); }
private static ThisCallNative.Width GetWidth(ThisCallNative.C *c) { return(new ThisCallNative.Width { width = c->width }); }
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); }
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); }
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); }
private static ThisCallNative.SizeF GetSize(ThisCallNative.C *c, int unused) { return(new ThisCallNative.SizeF { width = c->width, height = c->height }); }
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); }
private static ThisCallNative.SizeF GetSize(ThisCallNative.C* c) { return new ThisCallNative.SizeF { width = c->width, height = c->height }; }
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); }
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); }
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); }
private static CLong GetWidthAsLong(ThisCallNative.C *c) { return(new CLong((nint)c->width)); }
private static ThisCallNative.E GetE(ThisCallNative.C *c) { return(c->dummy); }