用一个加密狗,他的软件提供如下:
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):这个语句啊,老是报形参与实参不一致
解决方案 »
- ShockwaveFlash能加个onclick和mousemove事件吗
- DBGridEH如何实现复选框的全选,反选操作?
- delphi 的SOAP接口问题
- 举报!有人在本版内发不尊重德高望重的成员AD的言论。
- 高分求webservices ssl客户端验证实现
- 还是formulaone的问题,真诚送分
- 祝大家新年快乐散分
- 问题:用于检票时,如果阅读到的条码不对时,如何编程控制使之发出提示音。
- 調用webbrowser時彈出窗口 導止程序暂停运行
- 如何通过代码来修改bde内存的大小?
- 关于BeginPaint用法的问题,在线等.
- BCB里面目前没有得到解决的问题:listbox或者combobox的下拉点开问题
然后把字符串的内容复制到定义个变量里面
再调用函数
然后定义变量 mydata:Sense3AutoData
mydata[0]=1;
writememory0(mydata);
还是出错形参与实参不一致啊
这句报错?
不可哦WriteMemory0是不是还有其他声明?
WriteMemory0整个函数体都贴出来了啊
aPs: Sense3AutoData;
begin
aps[0] := 1;
WriteMemory0(aps);
writememory0(mydata);
这句编译错误 只要函数声明函数体里面有什么没关系 没有都可以
SENSE3
这句是函数调用了
但是无法在调试中得到值,如何做才能看到值