Delphi的字节对齐和简单string结构
2015-09-07 12:47
513 查看
procedure TForm1.Button1Click(Sender: TObject);
type
TTest = record
sAccount: string[31]; // 如果不加Packed 30和31是相同的大小 虽然是相同的,如果网络编程,传递后转换,Delphi是识别不出来的,会出现越界问题。
sChrName: string[15];
sUserAddr: string[15];
nSessionID: Integer;
end;
var
LLh: TTest;
begin
LLh.sAccount := '1234';
ShowMessage(Format('%d, %d, %x', [SizeOf(LLh), Integer((PChar(@LLh))^), Integer(LLh.sAccount[1])])); // 48, 4
// sAccount: string[12] 字节 13 , sAccount[1]前一个字节是长度
end;
type
TTest = record
sAccount: string[31]; // 如果不加Packed 30和31是相同的大小 虽然是相同的,如果网络编程,传递后转换,Delphi是识别不出来的,会出现越界问题。
sChrName: string[15];
sUserAddr: string[15];
nSessionID: Integer;
end;
var
LLh: TTest;
begin
LLh.sAccount := '1234';
ShowMessage(Format('%d, %d, %x', [SizeOf(LLh), Integer((PChar(@LLh))^), Integer(LLh.sAccount[1])])); // 48, 4
// sAccount: string[12] 字节 13 , sAccount[1]前一个字节是长度
end;
相关文章推荐
- Delphi类里面的方法和类型定义不影响创建实例的大小
- C#的string有null的概念,但是Delphi却没有
- C#和Delphi跟踪的问题,和实际数据不一样
- delphi 获取网卡信息(支持多网卡)
- Delphi10 安装Graphics32
- DELPHI短信接口开发经验及具体开发实现
- INNO&&DELPHI
- delphi多线程
- Delphi : Analyze PE file headers?
- 如何在Delphi中安装组件
- 如何在Delphi中安装组件
- Delphi反汇编内部字符串处理函数/过程不完全列表
- delphi 屏蔽中文输入法
- delphi开发:win8 图标问题
- Delphi VCL Menus单元绘制菜单逻辑错误
- delphi sql 图片
- Delphi xe10下载(包含破解补丁和破解视频)
- UTF-8 delphi 函数
- 未测试 Delphi读写UTF-8、Unicode格式文本文件
- Delphi中ADO存取效率的探讨