简单的写一下代码
bbb := vararraycreate([0, 6],varByte);
bbb[1] := $FF;
bbb[2] := $00;
bbb[3] := $13;
bbb[4] := $07;
bbb[5] := $00;
bbb[6] := $D9;
在赋值的时候跟踪,提示variant of Byte,不能察看,于是 watch窗口 bbb,10m 可以看到$12 $20 $00 ....$00,与我赋的值不一样,而采用静态数组,值是一样的,在后面的写文件部分
WriteFile(HCom1,bbb,7,tmplen,nil);
写出来的数据是$12 $20 $00 ....$00,而不是我所希望的数据这是为什么呢??
bbb := vararraycreate([0, 6],varByte);
bbb[1] := $FF;
bbb[2] := $00;
bbb[3] := $13;
bbb[4] := $07;
bbb[5] := $00;
bbb[6] := $D9;
在赋值的时候跟踪,提示variant of Byte,不能察看,于是 watch窗口 bbb,10m 可以看到$12 $20 $00 ....$00,与我赋的值不一样,而采用静态数组,值是一样的,在后面的写文件部分
WriteFile(HCom1,bbb,7,tmplen,nil);
写出来的数据是$12 $20 $00 ....$00,而不是我所希望的数据这是为什么呢??
解决方案 »
- delphi tmemo 屏闭鼠标
- 终于升星星了,散分!!!!!!!!!
- 如何对动态生成的按钮事件赋值?
- 唉 漫漫成才路啊
- 用IdHttp下载如何下载实时流文件?在线等...
- 请问关于ACCESS查询在参数设置的问题
- 关于成绩管理程序的一个问题。
- 关于TStringGrid显示的一个问题
- delphi连接access问题:MSDASQL.1【...ODBC driver】和Microsoft.Jet.OLEDB.4.0【...Jet 4.0 OLE DB】
- DELPHI 2007 for win32 的问题
- 我用F1BOOK生成的excel文件后,能不能让excel软件不能打开,只能通过FIBOOK控件打开?
- 求教:对两个表的操作。
V1, V2, V3, V4, V5: Variant;
I: Integer;
D: Double;
S: string;
begin
V1 := 1; { integer value }
V2 := 1234.5678; { real value }
V3 := 'Hello world!'; { string value }
V4 := '1000'; { string value }
V5 := V1 + V2 + V4; { real value 2235.5678}
I := V1; { I = 1 (integer value) }
D := V2; { D = 1234.5678 (real value) }
S := V3; { S = 'Hello world!' (string value) }
I := V4; { I = 1000 (integer value) }
S := V5; { S = '2235.5678' (string value) }end;
bbb[1] := $FF;
push 01
push 01
lea eax,[ebp-$28]
mov edx,$000000ff
mov cl,$01
call @varformint
.....
call @vararrayput而在varformint时候保存进去的是
11 00 00 00 00 00 00 00
ff 00 00 00 00 00 00 00
所以我认为variant在内存中保存应该是保存类型,保存值,这样的.
而你在watch看到的应该是这个variant的内存地址而已,然后你去mov当然也不对了.
读出时是这样:
var t:byte;
....
t:=bbb[6];