Utilisation des composants Indy 9 sous C++ Builder

Utilisation des composants Indy 9 sous C++ Builder - C++ - Programmation

Marsh Posté le 06-11-2004 à 11:55:35    

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 :
  1. 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 :
  1. typedef unsigned T4x4LongWordRecord[4];
  2. class DELPHICLASS TIdHash128;
  3. class PASCALIMPLEMENTATION TIdHash128 : public TIdHash
  4. {
  5. typedef TIdHash inherited;
  6. public:
  7. /*         class method */ static AnsiString __fastcall AsHex(TMetaClass* vmt, const unsigned * AValue);
  8. unsigned __fastcall HashValue(const AnsiString ASrc)/* overload */;
  9. virtual unsigned __fastcall HashValue(Classes::TStream* AStream) = 0 /* overload */;
  10. public:
  11. #pragma option push -w-inl
  12. /* TObject.Create */ inline __fastcall TIdHash128(void) : TIdHash() { }
  13. #pragma option pop
  14. #pragma option push -w-inl
  15. /* TObject.Destroy */ inline __fastcall virtual ~TIdHash128(void) { }
  16. #pragma option pop
  17. };


 
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)
Reply

Marsh Posté le 06-11-2004 à 11:55:35   

Reply

Marsh Posté le 06-11-2004 à 12:37:57    

[:icon12]

Reply

Marsh Posté le 06-11-2004 à 12:50:21    

[:sisicaivrai]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 06-11-2004 à 12:50:54    

b'indy donc, quel bide, ce topic

Reply

Marsh Posté le 06-11-2004 à 12:51:42    

c'est le wk end :o
à partir de lundi, je croulerais sous les réponses :o


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 06-11-2004 à 12:53:33    

Avec indy c'est un peu la dernière croisade ! [:dawa]


---------------
I'm failing as fast as I can !! -- Vision-360, vos photos en grand format -- !! -- Les nouilles c'est bon
Reply

Marsh Posté le 06-11-2004 à 12:58:03    

Harkonnen a écrit :

c'est le wk end :o
à partir de lundi, je croulerais sous les réponses :o


Alors il faut garder le topic Indy visible jusqu'à Lundi...

Reply

Marsh Posté le 06-11-2004 à 12:58:31    

arretez de pourrir son topic, bande d'indyot :o

Reply

Marsh Posté le 06-11-2004 à 12:59:21    

chrisbk a écrit :

arretez de pourrir son topic, bande d'indyot :o


Tu veux dire qu'on est des Indysirables ?

Reply

Marsh Posté le 06-11-2004 à 13:01:05    

Lam's a écrit :

Tu veux dire qu'on est des Indysirables ?


Essaye de rester indyfférent a ses insultes ! [:dawao]


---------------
I'm failing as fast as I can !! -- Vision-360, vos photos en grand format -- !! -- Les nouilles c'est bon
Reply

Marsh Posté le 06-11-2004 à 13:01:05   

Reply

Marsh Posté le 06-11-2004 à 13:03:12    

c'esr rindycule tout ca

Reply

Marsh Posté le 06-11-2004 à 13:15:13    

chrisbk a écrit :

c'esr rindycule tout ca

plutôt Indycent ! [:dawao]


---------------
I'm failing as fast as I can !! -- Vision-360, vos photos en grand format -- !! -- Les nouilles c'est bon
Reply

Marsh Posté le 06-11-2004 à 13:33:49    

Plus sérieusement, essaye de caster ta fonction pour faire semblant qu'elle retourne une structure qui contient 4 entiers, plutôt qu'un tableau d'entier.  
 
Genre:

Code :
  1. struct Ret { int a,b,c,d; };
  2. Ret (TIdHash128 ::*hashCool)(AnsiString c);
  3. hashCool = &TIHas128::Hash;
  4. Ret x = hashCool("Hello World" );

Reply

Marsh Posté le 06-11-2004 à 14:39:50    

tout ca pour un plugin a la con [:petrus75]


---------------
IVG en france
Reply

Marsh Posté le 06-11-2004 à 15:38:24    

Pourquoi tu le fais pas en assembleur SSE ton hash MD5 plutôt qu'en Delphi ?

Reply

Marsh Posté le 06-11-2004 à 19:33:47    

Lam's a écrit :

Plus sérieusement, essaye de caster ta fonction pour faire semblant qu'elle retourne une structure qui contient 4 entiers, plutôt qu'un tableau d'entier.  
 
Genre:

Code :
  1. struct Ret { int a,b,c,d; };
  2. Ret (TIdHash128 ::*hashCool)(AnsiString c);
  3. hashCool = &TIHas128::Hash;
  4. Ret x = hashCool("Hello World" );




Effectivement, ça marche bien, mais bon, j'ai préféré adapter la fonction que j'avais faite en pur Win 32 :/


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 06-11-2004 à 19:34:41    

verdoux a écrit :

Pourquoi tu le fais pas en assembleur SSE ton hash MD5 plutôt qu'en Delphi ?

Je le fais pas en Delphi grands dieux, mais en C++, vade retro :o
(et vu comme je me fais chier avec ces putains de composants, je suis sur que j'aurais mis moins de temps en assembleur :sweat:)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed