在C#中如何读取由VC++生成的二进制文件,文件头中struct结构,多谢啊,

解决方案 »

  1.   

    建立结构体 注意节对齐获取byte[]使用   public static object BytesToStuct(byte[] p_StructBytes, Type p_Type)
            {          
                int _StuctSize = Marshal.SizeOf(p_Type);         
                if (_StuctSize > p_StructBytes.Length)return null;          
                IntPtr _StructIntPtr = Marshal.AllocHGlobal(_StuctSize);     
                Marshal.Copy(p_StructBytes, 0, _StructIntPtr, _StuctSize);       
                object _ReturnObject = Marshal.PtrToStructure(_StructIntPtr, p_Type);         
                Marshal.FreeHGlobal(_StructIntPtr);          
                return _ReturnObject;
            }看看.
      

  2.   

    哥们这句出错啊。object _ReturnObject = Marshal.PtrToStructure(_StructIntPtr, p_Type);  错误错误 1 无法将类型“void”隐式转换为“object”
      

  3.   

    还引发了引发类型为“System.ExecutionEngineException”的异常。
      

  4.   

    http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120