zoukankan      html  css  js  c++  java
  • c# 调用c++sdk时结构体与byte数组互转

     /// <summary>
            /// 由结构体转换为byte数组
            /// </summary>
            public static byte[] StructureToByte<T>(T structure)
            {
                int size = Marshal.SizeOf(typeof(T));
                byte[] buffer = new byte[size];
                IntPtr bufferIntPtr = Marshal.AllocHGlobal(size);
                try
                {
                    Marshal.StructureToPtr(structure, bufferIntPtr, true);
                    Marshal.Copy(bufferIntPtr, buffer, 0, size);
                }
                finally
                {
                    Marshal.FreeHGlobal(bufferIntPtr);
                }
                return buffer;
            }
    
            /// <summary>
            /// 由byte数组转换为结构体
            /// </summary>
            public static T ByteToStructure<T>(byte[] dataBuffer)
            {
                object structure = null;
                int size = Marshal.SizeOf(typeof(T));
                IntPtr allocIntPtr = Marshal.AllocHGlobal(size);
                try
                {
                    Marshal.Copy(dataBuffer, 0, allocIntPtr, size);
                    structure = Marshal.PtrToStructure(allocIntPtr, typeof(T));
                }
                finally
                {
                    Marshal.FreeHGlobal(allocIntPtr);
                }
                return (T)structure;
            }

     转载

  • 相关阅读:
    zznuoj 2173 春天的英雄梦
    zznuoj 2171: 春天的致富梦
    zznuoj 2169: 春天的打水梦
    zznuoj 2168 大家好 我是水题
    西安赛打铁队检讨书
    B-number HDU
    Bomb HDU
    CodeForces
    1140
    Frequent Subsets Problem
  • 原文地址:https://www.cnblogs.com/macT/p/12122786.html
Copyright © 2011-2022 走看看