var
myrecord :TmyRecord;
begin
myrecord :=.....//付值
...
...
writedata(SlotName,pchar(@MyRecord),sizeof(TMyRecord));end;
(通过服务器中转)
myrecord :TmyRecord;
begin
myrecord :=.....//付值
...
...
writedata(SlotName,pchar(@MyRecord),sizeof(TMyRecord));end;
(通过服务器中转)
解决方案 »
- Delphi调用Java的WebService报错
- 建个COM对象,其中一个函数的传人参数要是Pointer,在TypeLibrary中应该怎么设置。
- SOS——?????????!!!!!!!!!!!!!!1
- 怎样把字符数组转换成字符串。谢谢。顶者有分
- 执行存储过程时进度条怎么不动?
- 问一下,朋友间交换文件用什么软件好啊?最好能穿过防火墙,MSN现在传文件狂慢,QQ又要会员,FTP又没有单独的IP,谁快帮帮我,特别是要传
- 更新数据库速度慢的问题!
- 好人们,帮忙
- 用delphi xe如何设计一个查阅word文档的手机软件
- 请问,建表的时候,编号字段的类型,是自动添加好,还是用户自己输
- 动态创建了一批的Label后,我怎么知道我所点击的Label的caption,它是这一批中的一个,但又不确定是哪一个。请各位帮忙!
- 在d6中, toolbar 中toolbutton 的menuitem屬性與 mainmenu 連接過後, 為什麼mainmenu還會顯示在form上呀!
myrecord :TmyRecord;
begin
myrecord :=.....//付值
...
...
writedata(SlotName,pointer(@MyRecord),sizeof(TMyRecord));end; 或
var
myrecord :TmyRecord;
begin
myrecord :=.....//付值
...
...
writedata(SlotName,@MyRecord,sizeof(TMyRecord));end;
我现在一赋值就出错eaccessviolation错误
我现在一赋值就出错eaccessviolation错误
TMyRecord = packed record
head: array[0..3] of Char;
aa:byte;
bb1:byte;
bb2:byte;
cc:byte;
dd:byte;
ee:longword;
ff:longword;
gg:byte;
hh:byte;
ii:byte;
jj:byte;
kk:byte;
end;
PMyRecord = ^TMyRecord;
var
vMyRecord: PMyRecord;
begin
vmyrecord^.head[0]:='@' ;
end;
一运行就出错
eaccessviolation错误
好像是没给vmyrecord赋地址
getmem(vMyrecord)用完释放
freemem(vMyrecord)
vMyrecord :=getmem(sizeof(Tmyrecord));
...
..
freemem(vMyrecord)
vMyrecord :=getmem(sizeof(Tmyrecord));
...
..
freemem(vMyrecord)
不用可以达到目的
我现在改为vMyrecord就是一个结构
不用指针了
是不是就不用上边的了
还有问一下怎样取一定范围内的随机数
var
myrecord :TmyRecord;
begin
//myrecord :=.....//付值
MyRecord.aa :=1;
Myrecord.bb :=2
...
...
Myrecord.kk :=...;writedata(SlotName,pointer(@MyRecord),sizeof(TMyRecord));end; 随即函数
function Random [ ( Range: Integer) ];
var
myrecord :TmyRecord;
begin
//myrecord :=.....//付值
MyRecord.aa :=1;
Myrecord.bb :=2
...
...
Myrecord.kk :=...;writedata(SlotName,pointer(@MyRecord),sizeof(TMyRecord));end; 随即函数
function Random [ ( Range: Integer) ];
type
TMyRecord = packed record
head: array[0..3] of Char;
aa:byte;
bb1:byte;
bb2:byte;
cc:byte;
dd:byte;
ee:longword;
ff:longword;
gg:byte;
hh:byte;
ii:byte;
jj:byte;
kk:byte;
end;
var
vMyRecord: TMyRecord;
vBuffer: array[0..21] of Char;
pBuffer: PChar;
begin
{ TODO : 操作vMyRecord }
vBuffer[00] := vMyRecord.head[0];
vBuffer[01] := vMyRecord.head[1];
vBuffer[02] := vMyRecord.head[2];
vBuffer[03] := vMyRecord.head[3]; vBuffer[04] := Char(vMyRecord.aa);
vBuffer[05] := Char(vMyRecord.bb1);
vBuffer[06] := Char(vMyRecord.bb2);
vBuffer[07] := Char(vMyRecord.cc);
vBuffer[08] := Char(vMyRecord.dd); vBuffer[09] := Char(vMyRecord.ee shr 24 and $FF);
vBuffer[10] := Char(vMyRecord.ee shr 16 and $FF);
vBuffer[11] := Char(vMyRecord.ee shr 08 and $FF);
vBuffer[12] := Char(vMyRecord.ee shr 00 and $FF); vBuffer[13] := Char(vMyRecord.ff shr 24 and $FF);
vBuffer[14] := Char(vMyRecord.ff shr 16 and $FF);
vBuffer[15] := Char(vMyRecord.ff shr 08 and $FF);
vBuffer[16] := Char(vMyRecord.ff shr 00 and $FF); vBuffer[17] := Char(vMyRecord.gg);
vBuffer[18] := Char(vMyRecord.hh);
vBuffer[19] := Char(vMyRecord.ii);
vBuffer[20] := Char(vMyRecord.jj);
vBuffer[21] := Char(vMyRecord.kk); pBuffer := vBuffer;
WriteData(SlotName, pBuffer, 22);
end;
type
TMyRecord = packed record
head: array[0..3] of Char;
aa:byte;
bb1:byte;
bb2:byte;
cc:byte;
dd:byte;
ee:longword;
ff:longword;
gg:byte;
hh:byte;
ii:byte;
jj:byte;
kk:byte;
end;
PMyRecord = ^TMyRecord;
var
vMyRecord: PMyRecord;
begin
new(vmyrecord);//分配内存地址
vmyrecord^.head[0]:='@' ;
end;procedure TForm1.Button1Click(Sender: TObject);
type
TMyRecord = packed record
head: array[0..3] of Char;
aa:byte;
bb1:byte;
bb2:byte;
cc:byte;
dd:byte;
ee:longword;
ff:longword;
gg:byte;
hh:byte;
ii:byte;
jj:byte;
kk:byte;
end;
var
vBuffer: array[0..21] of Char;
begin
//先给vbuffer写入内存,就象上面的一样
WriteData('要输入的名称', @vBuffer[0], 22);
//这里你最后查一查Cardinal要的是什么,如果是总字节数,就要这样写WriteData('要输入的名称', @vBuffer[0], 22*Sizeof(TMyRecord));
end;
type
TMyRecord = packed record
head: array[0..3] of Char;
aa:byte;
bb1:byte;
bb2:byte;
cc:byte;
dd:byte;
ee:longword;
ff:longword;
gg:byte;
hh:byte;
ii:byte;
jj:byte;
kk:byte;
end;
PMyRecord = ^TMyRecord;
var
vMyRecord: PMyRecord;
begin
new(vmyrecord);//分配内存地址
vmyrecord^.head[0]:='@' ;
end;procedure TForm1.Button1Click(Sender: TObject);
type
TMyRecord = packed record
head: array[0..3] of Char;
aa:byte;
bb1:byte;
bb2:byte;
cc:byte;
dd:byte;
ee:longword;
ff:longword;
gg:byte;
hh:byte;
ii:byte;
jj:byte;
kk:byte;
end;
var
vBuffer: array[0..21] of Char;
begin
//先给vbuffer写入内存,就象上面的一样
WriteData('要输入的名称', @vBuffer[0], 22);
//这里你最后查一查Cardinal要的是什么,如果是总字节数,就要这样写WriteData('要输入的名称', @vBuffer[0], 22*Sizeof(TMyRecord));
end;