typedef struct a
{
//......
}a;typedef struct b
{
//......
}b;a a1;
b a2;HGLOBAL ha=GlobalAlloc(GMEM_FIXED,sizeof(a)+sizeof(b));LPVOID lp=GlobalLock(ha);CopyMemory(lp,&a1,sizeof(a));
CopyMemory(lp+sizeof(a),&a2,sizeof(b));

解决方案 »

  1.   

    建议:
    将GlobalAlloc替换为HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(...));
    去掉GlobalLock(...);
    或者使用new操作符!
    Global和Local的内存操作已经只是为了与16位的程序兼容保留,新的程序最好不用!
      

  2.   

    另外看ltz是个新手!
    千万注意调用内存的释放函数
    GlobalAlloc-->GlobalFree
    HeapAlloc-->HeapFree
    new--->delete