public static byte[] Unpack(byte[] bytes) { uint inSize = (uint)bytes.Length; var pinnedBytes = GCHandle.Alloc(bytes, GCHandleType.Pinned); ArxIONative.UnpackAlloc(pinnedBytes.AddrOfPinnedObject(), inSize, out IntPtr outPtr, out uint outSize); pinnedBytes.Free(); var outBytes = new byte[outSize]; Marshal.Copy(outPtr, outBytes, 0, (int)outSize); ArxIONative.UnpackFree(outPtr); return(outBytes); }
static ArxIO() { ArxIONative.Init(); }