记录结构:
  TRespSend = record
    MsgOrd   : integer;
    MsgID     : array [0..15] of char ;
    MsgStat   : byte;
  end;       现在需要把一个TRespSend对象所有字段联接起来形成一个PChar.
   对于PChar中的内容有格式要求,MsgOrd占11位,MsgID占16位,MsgStat占8位。所组成的PChar长度是11+16+8,而RespSend的位数是8+16+8位,这么搞是为了传递个一个DLL函数。本质上就是将一个数据拆份然后按照另一个规则重新封装起来。   目前的问题是:因为RespSend.MsgOrd传递过来时是8位,封装成PChar时要加上3位,这样到DLL就不能回复这个值了。怎么办啊?  一个思路(没有测试成功):
  先定义一个
 var
  arr: Array[0..34] of char;
  tempStr:string;
begin
  tempStr : = RespSend.MsgOrd;
  CopyMemory(@arr[1],PChar(tempStr),11);
  CopyMemory(@arr[12],PChar(RespSend.ID),16);
  CopyMemory(@arr[28],PChar(RespSend.MsgStat),8);
//  ....返回@arr就行了,但是.....没有测试成功啊,看看我的代码有错误吗?有没有好的解决办法?