plop,
j'ai installé Indy 9 pour CPPB. dedans, y'a une classe TIdHashMessageDigest5 qui est sensée représenter un encodage MD5.
dans cette classe, y'a une méthode HashValue(const AnsiString ASrc), qui, dans Delphi, renvoie un tableau de 4 int (T4x4LongWordRecord) représentant le MD5 de l'AnsiString passée en argument.
je veux utiliser cette classe dans C++ Builder. 1er problème : la doc d'Indy 9 ne concerne que Delphi, donc si je connais pas Delphi, c'est DMC !
je vais donc consulter le .hpp dans lequel est déclaré la classe, et je m'aperçois que la méthode HashValue est déclarée comme ceci :
Code :
- unsigned __fastcall HashValue(const AnsiString ASrc)/* overload */;
|
vous voyez le bins ? cette fonction est sensée me renvoyer un tableau de 4 int dans Delphi, et dans C++ Builder, elle me renvoie un int non signé !!
voici la déclaration de la classe TIdHash128, dont hérite TIdHashMessageDigest5 :
Code :
- typedef unsigned T4x4LongWordRecord[4];
- class DELPHICLASS TIdHash128;
- class PASCALIMPLEMENTATION TIdHash128 : public TIdHash
- {
- typedef TIdHash inherited;
- public:
- /* class method */ static AnsiString __fastcall AsHex(TMetaClass* vmt, const unsigned * AValue);
- unsigned __fastcall HashValue(const AnsiString ASrc)/* overload */;
- virtual unsigned __fastcall HashValue(Classes::TStream* AStream) = 0 /* overload */;
- public:
- #pragma option push -w-inl
- /* TObject.Create */ inline __fastcall TIdHash128(void) : TIdHash() { }
- #pragma option pop
- #pragma option push -w-inl
- /* TObject.Destroy */ inline __fastcall virtual ~TIdHash128(void) { }
- #pragma option pop
- };
|
on voit que le type T4x4LongWordRecord est déclaré, mais qu'il n'est pas utilisé !??!
Question : je fais comment pour utiliser cette foutue fonction HashValue, si elle ne me renvoie pas ce qu'elle est sensée me renvoyer ??
---------------
J'ai un string dans l'array (Paris Hilton)