用一个加密狗,他的软件提供如下:
type
Sense3AutoData = array [0..41] of word;
function WriteMemory0(var p:Sense3AutoData):word;
var
v0,v1:word;
i:word;
begin
pss3 := @ss3;
p[34] := p[Write_Addr];
p[11] := p[Write_Data];
p[25] := p[12];
p[22] := p[34]-p[11];
p[7] := p[25]+p[22];
p[2] := p[34]+p[7];
p[3] := p[7]+p[2];
for i := 0 to 7 do
p[3] := (p[3] shl 1)+(p[3] shr 15);
p[17] := p[22]-p[3];
for i := 0 to 0 do
p[17] := (p[17] shr 1)+(p[17] shl 15);
p[19] := p[7]-p[3];
ss3.FunctionCode := InAddr;
ss3.OutWords := 4;
ss3.OutBuff[3] := p[19];
ss3.OutBuff[2] := p[3];
ss3.OutBuff[1] := WriMemAddr;
ss3.OutBuff[0] := p[17];
SENSE3(ss3);
if (ss3.ReturnFlag >= $80) then
WriteMemory0 := ss3.ReturnFlag
else
begin
p[10] := ss3.InBuff[3];
p[25] := ss3.InBuff[2];
p[22] := ss3.InBuff[0];
p[16] := p[25]-p[22];
p[18] := p[10]+p[16];
p[2] := p[25]+p[18];
p[22] := p[18]+p[2];
for i := 0 to 7 do
p[22] := (p[22] shl 1)+(p[22] shr 15);
p[17] := p[16]-p[22];
for i := 0 to 0 do
p[17] := (p[17] shr 1)+(p[17] shl 15);
p[34] := p[18]-p[22];
v0 := p[17];
p[35] := p[22];
p[Write_Addr] := p[34];
p[Write_Data] := v0;
WriteMemory0 := ss3.ReturnFlag;
end;
end;如上函数
我想通过写语句分别将一串字符串与当前日期写入狗,如何写function WriteMemory0(var p:Sense3AutoData):这个语句啊,老是报形参与实参不一致
type
Sense3AutoData = array [0..41] of word;
function WriteMemory0(var p:Sense3AutoData):word;
var
v0,v1:word;
i:word;
begin
pss3 := @ss3;
p[34] := p[Write_Addr];
p[11] := p[Write_Data];
p[25] := p[12];
p[22] := p[34]-p[11];
p[7] := p[25]+p[22];
p[2] := p[34]+p[7];
p[3] := p[7]+p[2];
for i := 0 to 7 do
p[3] := (p[3] shl 1)+(p[3] shr 15);
p[17] := p[22]-p[3];
for i := 0 to 0 do
p[17] := (p[17] shr 1)+(p[17] shl 15);
p[19] := p[7]-p[3];
ss3.FunctionCode := InAddr;
ss3.OutWords := 4;
ss3.OutBuff[3] := p[19];
ss3.OutBuff[2] := p[3];
ss3.OutBuff[1] := WriMemAddr;
ss3.OutBuff[0] := p[17];
SENSE3(ss3);
if (ss3.ReturnFlag >= $80) then
WriteMemory0 := ss3.ReturnFlag
else
begin
p[10] := ss3.InBuff[3];
p[25] := ss3.InBuff[2];
p[22] := ss3.InBuff[0];
p[16] := p[25]-p[22];
p[18] := p[10]+p[16];
p[2] := p[25]+p[18];
p[22] := p[18]+p[2];
for i := 0 to 7 do
p[22] := (p[22] shl 1)+(p[22] shr 15);
p[17] := p[16]-p[22];
for i := 0 to 0 do
p[17] := (p[17] shr 1)+(p[17] shl 15);
p[34] := p[18]-p[22];
v0 := p[17];
p[35] := p[22];
p[Write_Addr] := p[34];
p[Write_Data] := v0;
WriteMemory0 := ss3.ReturnFlag;
end;
end;如上函数
我想通过写语句分别将一串字符串与当前日期写入狗,如何写function WriteMemory0(var p:Sense3AutoData):这个语句啊,老是报形参与实参不一致
解决方案 »
- 我装了一个InfoPower4000Pro_vcl7为什么里成只有一个wwdatasource和一个wwrecordviewpanel呀其他的呢,为什么没有呀
- 大家用什么做delphi6的安装包啊
- 关于实现QQ的系统消息功能
- 出差回来,很累,现在散分!
- 很急很急的一个问题,望高手指教
- 请问哪里有ExpressBars控件组的汉化版下载
- 如何程序中设置FastReport报表中的MEMO值
- 菜鸟问题:WebConnection的使用方法及例子
- 推荐两本好书作者:李维《delhi5.X分布式多层应用系统篇》和《delphi5.X分布式多层应用电子商务篇》
- 继续请教老鬼!
- 急救!关于Dll方面的疑问:装载了dll后,直接关闭主程序会报错...
- SocketConnection连接问题
比喻日期你要用 2006-06-29var
Sense3: TSense3AutoData;
Value: word;
begin
Sense3[0] := 2006;
Sense3[1] := 6;
Senes3[2] := 29;
value := WriteMemory0(@Sens3);
end;
1、
type t1=record
case integer of
0: (Sense3AutoData : array [0..41] of word) ;
1: (dt: tdatetime);
2: (p:array[0..83] of char);
end;var v:t1;
赋值: v.dt=now;
调用:WriteMemory0(v.Sense3AutoData);
2、
type pSense3AutoData=^Sense3AutoData;d=now;
WriteMemory0(pSense3AutoData(addr(d))^);p:='abcdefg';
WriteMemory0(pSense3AutoData(p)^);