请问如何将以下这些VC代码变换成DELPHI代码呢?
请不吝赐教!
这写代码是DES加密解密所用的。谢谢!typedef bool (*PSubKey)[16][48];
enum ENCDEC_TYPE
{
ENCRYPT = 0, //加密
DECRYPT //解密
};class CDESEncDec
{
public:
CDESEncDec();
virtual ~CDESEncDec(); bool EncDec(char *Out,char *In,long datalen,const char *Key,int keylen,bool Type = ENCRYPT);private:
void DES(char Out[8], char In[8], const PSubKey pSubKey, bool Type);//标准DES加/解密
void SetSubKey(PSubKey pSubKey, const char Key[8]);// 设置子密钥
private:
bool SubKey[2][16][48];// 16圈子密钥
};bool CDESEncDec::EncDec(char *Out, char *In, long datalen, const char *Key, int keylen, bool Type)
{
    if( !( Out && In && Key && (datalen=(datalen+7)&0xfffffff8) ) ) 
return false;

SetKey(Key, keylen);
if( !Is3DES )
{   // 1次DES
for(long i=0,j=datalen>>3; i<j; ++i,Out+=8,In+=8)
DES(Out, In, &SubKey[0], Type);
}
else{   // 3次DES 加密:加(key0)-解(key1)-加(key0) 解密::解(key0)-加(key1)-解(key0)
for(long i=0,j=datalen>>3; i<j; ++i,Out+=8,In+=8)
{
DES(Out, In,  &SubKey[0], Type);
DES(Out, Out, &SubKey[1], !Type);
DES(Out, Out, &SubKey[0], Type);
}
} return true;
}void CDESEncDec::SetKey(const char* Key, int len)
{
         memset(deskey, 0, 16);
memcpy(deskey, Key, len>16?16:len);
SetSubKey(&SubKey[0], &deskey[0]);
Is3DES = len>8 ? (SetSubKey(&SubKey[1], &deskey[8]), true) : false;
}