现在调用个vc++下的dll,pack=8才行,不知道这个和pack=1有什么区别?
用Marshal.PtrToStruct,结果有个字段后面的全部不对
请大家指点下!

解决方案 »

  1.   

    只能说明你VC++的DLL的结构体使用的是8字节对齐..也就是32位.
      

  2.   

    C#里使用[StructLayout(LayoutKind.Sequential, Pack = 8)] 不可以吗?
      

  3.   

    是啊!我是这样尝试的,可惜还是不行,我也曾经用BitConvert.ToDouble试过,也只能读一部分字段出来
      

  4.   

    你看下返回的byte[]到底是怎么分的结构 感觉是4的可能性比较大。
      

  5.   

    你看下返回的byte[]到底是怎么分的结构
    这个怎么看呢?
      

  6.   

    您方便qq或者msn指导下吗?我qq是787480882 msn [email protected]
      

  7.   

    先把byte[]保存到 文件里.找个16进编辑器打开.
    然后看这你的C++结构体对照下.
      

  8.   

     string s="";
                for (Int32 i = 0; i < quotData.Length; i++)
                {
                    s += quotData[i].ToString(); 
                }
    这样可以吗?
      

  9.   

     这样把 BitConvert.ToString(byte[])..你看看你结构体的数据是怎么分布的.
      

  10.   

    6A-9A-98-00-5E-12-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-30-30-30-30-30-00-00-00-43-00-00-00-00-00-54-41-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-31-30-30-32-00-00-00-00-00-00-00-00-00-00-00-00-00-00-B0-BA-40-1D-38-67-44-A9-93-A8-40-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-0A-00-00-00-00-00-00-00-00-00-00-00-38-F8-C2-64-AA-60-04-C1-00-00-00-00-00-10-BA-40-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-EC-01-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-08-BB-40-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-DC-BA-40-01-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-42-BB-40-01-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-54-41-00-00-06-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-5E-29-04-E0-61-1E-04-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-61-32-55-30-2A-A9-C3-40-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-1E-04-10-00-00-00-00-00-00-00-00-00-2D-43-1C-EB-E2-36-9A-40-2D-43-1C-EB-E2-36-9A-3F-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-31-00-80-52-00-00-00-00-00-00-00-00-2D-43-1C-EB-42-6E-AA-40-61-32-55-30-2A-A9-C3-3F-38-04-FF-FF-FF-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-24-04-60-26-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-27-A0-89-B0-E1-E9-F5-C0-F7-FF-E0-61-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-84-20-04-10-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-5D-6D-C5-FE-72-C9-99-C0-AD-FA-5C-6D-A3-63-E8-40-6F-12-83-C0-4F-A8-03-C1-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-8A-8E-E4-F2-FF-FF-CD-C0-3A-92-CB-7F-0B-CE-F9-C0-00-00-00-00-00-00-00-00-10-58-39-B4-C8-36-1A-40-00-00-00-00-00-00-00-00-00-00-00-00-6B-9A-77-9C-A2-E3-ED-40-2B-87-16-D9-CE-36-FA-C0-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-04-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-96-43-8B-6C-E7-BC-F3-40-00-00-00-00-94-87-85-5A-D3-BC-F3-3F-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-80-95-18-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-04-00-CE-19-04-C0-B2-42-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
      

  11.   

    VC中的结构默认按8字节对齐,确保每个变量或数组元素都不跨越8字节边界,(尺寸大于8字节的变量或数组元素将开始位置按8字节对齐)。例如这样的结构:
    {
    BYTE b;
    WORD w;
    double d;
    }
    在整个结构中,b相对于位置是0,w是2,d是8,结构大小是16。在某些特殊情况下(例如要兼容早期遗留下来的结构),可以指定结构的对齐方式,比较常见的是按1字节对齐,也就是不做对齐处理。
      

  12.   

    上面说错了,更正一下:是确保每个尺寸不大于8字节的变量或数组元素的开始位置都能被其尺寸整除。例如WORD型变量的尺寸是2字节,则变量的开始位置要能被2整除。
      

  13.   

    http://h.8wa.com