Example #1
0
        public byte[] DataTransFromBuffer(SapBuffer buff)
        {
            byte[]   output     = new byte[buff.Width * buff.Height];
            GCHandle outputAddr = GCHandle.Alloc(output, GCHandleType.Pinned); // output 의 주소 만듬
            IntPtr   pointer    = outputAddr.AddrOfPinnedObject();             //

            buff.ReadRect(0, 0, buff.Width, buff.Height, pointer);

            Marshal.Copy(pointer, output, 0, output.Length);
            outputAddr.Free();
            return(output);
        }
Example #2
0
 public override bool?BuffGetAll()
 {
     try
     {
         BuffData = new byte [Buffers.Width * Buffers.Height];
         GCHandle outputAddr = GCHandle.Alloc(BuffData, GCHandleType.Pinned);
         IntPtr   pointer    = outputAddr.AddrOfPinnedObject();
         Buffers.ReadRect(0, 0, Buffers.Width, Buffers.Height, pointer);
         Marshal.Copy(pointer, BuffData, 0, BuffData.Length);
         outputAddr.Free();
         return(true);
     }
     catch (Exception ex)
     {
         BuffData = null;
         return(null);
     }
 }