在C中
int DecryptionData(char * apInData,unsigned long aiInDataLen, char * apOutData,unsigned long & aiOutDataLen)
{
unsigned char *buf=new unsigned char[aiInDataLen];
if(buf==NULL)return 0;
unsigned long tl;
memcpy(buf,apInData,aiInDataLen);
for(unsigned int ti=0;ti<aiInDataLen/8;ti++)
decipher((unsigned long *)(buf+ti*8), (unsigned long *)(buf+ti*8+4));
aiOutDataLen=*buf*0x01000000+*(buf+1)*0x010000+*(buf+2)*0x100+*(buf+3);
memcpy(apOutData,buf+4,aiOutDataLen);
delete buf;
return 1;
}Delphi中function TCompress.DecryptionData(apInData: PChar; aiInDataLen: Cardinal;
apOutData: PChar; aiOutDataLen : PCardinal): integer;
var buf : PChar;
tl,ti : Cardinal;
begin
GetMem(buf,aiInDataLen);
if buf <> nil then result := 0;
CopyMemory(buf,apInData,aiInDataLen);
for ti := 0 to (aiInDataLen div 8 - 1) do
decipher(PCardinal(buf + ti*8), PCardinal(buf + ti*8 + 4));
aiOutDataLen := ((buf^)*$01000000) + (((buf + 1)^) * $010000) + (((buf + 2)^) * $100) + (buf + 3)^;
CopyMemory(apOutData,buf+4,aiOutDataLen^); FreeMem(buf);
result := 1;
end;其中aiOutDataLen := ((buf^)*$01000000) + (((buf + 1)^) * $010000) + (((buf + 2)^) * $100) + (buf + 3)^;
编译不过 提示Operator not applicable to this operand type
int DecryptionData(char * apInData,unsigned long aiInDataLen, char * apOutData,unsigned long & aiOutDataLen)
{
unsigned char *buf=new unsigned char[aiInDataLen];
if(buf==NULL)return 0;
unsigned long tl;
memcpy(buf,apInData,aiInDataLen);
for(unsigned int ti=0;ti<aiInDataLen/8;ti++)
decipher((unsigned long *)(buf+ti*8), (unsigned long *)(buf+ti*8+4));
aiOutDataLen=*buf*0x01000000+*(buf+1)*0x010000+*(buf+2)*0x100+*(buf+3);
memcpy(apOutData,buf+4,aiOutDataLen);
delete buf;
return 1;
}Delphi中function TCompress.DecryptionData(apInData: PChar; aiInDataLen: Cardinal;
apOutData: PChar; aiOutDataLen : PCardinal): integer;
var buf : PChar;
tl,ti : Cardinal;
begin
GetMem(buf,aiInDataLen);
if buf <> nil then result := 0;
CopyMemory(buf,apInData,aiInDataLen);
for ti := 0 to (aiInDataLen div 8 - 1) do
decipher(PCardinal(buf + ti*8), PCardinal(buf + ti*8 + 4));
aiOutDataLen := ((buf^)*$01000000) + (((buf + 1)^) * $010000) + (((buf + 2)^) * $100) + (buf + 3)^;
CopyMemory(apOutData,buf+4,aiOutDataLen^); FreeMem(buf);
result := 1;
end;其中aiOutDataLen := ((buf^)*$01000000) + (((buf + 1)^) * $010000) + (((buf + 2)^) * $100) + (buf + 3)^;
编译不过 提示Operator not applicable to this operand type
解决方案 »
- 我想让窗体显示有个渐变的过程,慢慢显示出来,还有窗体事件里有个ACTION属性和事件,这个是什么用处的
- 散分,不知不覺中又多了顆星
- 如何得到当前memo中内容的行数
- 在DELPHI中是否有读取I/O端口的函数?
- 嵌套窗体
- DBExpress求助!!!
- delphi7中SYSDBA默认密码不是masterkey吗??
- 请问专家,怎样用delphi实现将pardox和access向sql导入数据?最好能有示例过程,急!
- 如何创建Help文档?
- 错误:Win32 Error Code 87 (Error Creating Form) 怎样解决?谢谢!
- 请问要hook一个程序内部的函数,要怎么做?在delphi里如何保护现场以及还原现场?
- 这个是什么意思啊?{$WARN UNSAFE_TYPE OFF}
var
tl: integer;
ti: integer;
buf: pchar;
begin GetMem(buf, aiInDataLen * sizeof(char));
if buf=nil then
begin
result := 0;
exit;
end; CopyMemory(buf, apInData, aiInDataLen);
for ti := 0 to (aiInDataLen div 8) do
// decipher(pdword(integer(buf)+ti*8), pdword(integer(buf)+ti*8+4); aiOutDataLen^ := integer(buf^) * $01000000 + Integer(Pointer(integer(buf)+1)^) * $010000 +
Integer(Pointer(Integer(buf)+2)^) * $100 + Integer(Pointer(integer(buf)+3)^); CopyMemory(apOutData,pointer(integer(buf)+4), aiOutDataLen^);
FreeMem(buf);
result := 1;
end;
var
tl: integer;
ti: integer;
buf: pchar;
begin GetMem(buf, aiInDataLen * sizeof(char));
if buf=nil then
begin
result := 0;
exit;
end; CopyMemory(buf, apInData, aiInDataLen);
for ti := 0 to (aiInDataLen div 8) do
// decipher(pdword(integer(buf)+ti*8), pdword(integer(buf)+ti*8+4); aiOutDataLen^ := integer(buf^) * $01000000 + Integer(Pointer(integer(buf)+1)^) * $010000 +
Integer(Pointer(Integer(buf)+2)^) * $100 + Integer(Pointer(integer(buf)+3)^); CopyMemory(apOutData,pointer(integer(buf)+4), aiOutDataLen^);
FreeMem(buf);
result := 1;
end;
Copy && Paste ??????????????