private static bool ElementsAreEqual(Foo[] array, byte[] rawArray, int index) { fixed(Foo *pArray = array) fixed(byte *pRaw = rawArray) { Foo *pCasted = (Foo *)pRaw; Foo val1 = pArray[index]; Foo val2 = pCasted[index]; return(val1.Equals(val2)); } }
unsafe static void Main() { Foo f = new Foo(); Foo *s = &f; }
public static IFoo GetProxy(this Ipc <Foo> wrapper) { Foo *linked = Memory.Link <Foo>(wrapper.Handle); return(new FooProxy(linked)); }
private static void CallPtrPInvoke(Foo *fi) { *fi = AliasingRetBufNative.TransposeRetBufPtr(fi); }
public static unsafe extern Foo TransposeRetBufPtr(Foo *fi);
private static void CallPtrFPtr(Foo *fi, delegate *unmanaged[Cdecl, SuppressGCTransition] < Foo *, Foo > fptr)
public FooProxy(Foo *val) { _val = val; }