Convertir un grand décimal en hex [Résolu]

Signaler
Messages postés
64
Date d'inscription
vendredi 14 décembre 2001
Statut
Membre
Dernière intervention
19 juin 2010
-
Messages postés
64
Date d'inscription
vendredi 14 décembre 2001
Statut
Membre
Dernière intervention
19 juin 2010
-
Bonjour,

   Je sais que ca ne se fait pas trop, mais je n'y connais rien en c++  et je n'arrive pas à coder une fonction de conversion de grands décimaux en c++.. Je ne sais meme pas si une librairie le fait... Alors si quelqu'un pouvait me coder ca ou me mettre sur la piste ca serait super sympa (vu qu'à mon avis vous vous débrouillez mieux).

J'aurais besoin que cette fonction prenne en parametre un nombre:  144616148535667864
et me retourne sa valeur en hexa, mais sous forme de string : "0201c79ef240ec98"

Tout ceci dans le but de l'intégrer dans une dll, afin de l'utiliser sous vb6 (vb6 génère un overflow car la fonction hex() n'accepte que des variables de type entier, et les fonctions faites maison que j'ai trouvé sous vb ne gèrent pas des nombres aussi grands). Ou alors si vous connaissez une api qui fait ça... J'ai bien essayé en .net, mais le recours au framework m'embete...

En tout cas merci d'avance pour vos réponses...

Attention à Astérix, mon Pitt Bull

10 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Declare Function bnI64ToFullHex Lib "i64ToHex.dll" (ByVal szInt64 As String) As String
Declare Function bnI64ToHex Lib "i64ToHex.dll" (ByVal szInt64 As String) As String


Sub Test()
  Dim s As String
  s = bnI64ToFullHex("248")
  Debug.Print s
  s = bnI64ToHex("248")
  Debug.Print s
End Sub


DLL dans son proj complet VC++ 2005 ici:
http://brunews.com/i64ToHex.zip

ciao...
BruNews, MVP VC++
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Fallait regarder ici:
http://www.cppfrance.com/code.aspx?ID=41170


On dira 'd' le double reçu:
DWORD *p;
char buf[28];


p = (DWORD*) &d;
ultoa(*(p+1), buf, 16); // PARTIE HAUTE DU FLOAT64
ultoa(*p, buf, 16); // PARTIE BASSE DU FLOAT64


Conversion char* en BSTR est aussi dans mes sources.

ciao...
BruNews, MVP VC++
Messages postés
64
Date d'inscription
vendredi 14 décembre 2001
Statut
Membre
Dernière intervention
19 juin 2010

Re,

   merci mais comme je le disais je voudrais éviter d'avoir recours aux langages .net, le but étant de créer une dll exploitable par vb6 (d'après ce que l'on m'a dit, il n'est pas possible d'utiliser une dll .net sous vb6)

Attention à Astérix, mon Pitt Bull
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Il n'y a jamais de .net ni aucun autre interprété dans mes codes.

ciao...
BruNews, MVP VC++
Messages postés
64
Date d'inscription
vendredi 14 décembre 2001
Statut
Membre
Dernière intervention
19 juin 2010

Re,

désolé brunews, mais je n'arrive pas a ouvrir ton projet aussi bien dans visual c++ que visual studio .net (je croyais que c'était du .net quand j'ai vu un fichier .sln dans le zip)... Au risque d'abuser, est-ce que tu pourrais me fabriquer cette dll (ton code est trop compliqué pour mon niveau et je ne connais rien au c++)  ? ... ca serait super sympa de ta part...

Attention à Astérix, mon Pitt Bull
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
C'est que des entiers que tu dois gérer, pas de flottant ?

Grands nombres impossibles à transmettre depuis VB.
Tu passeras une chaine et DLL convertira en _int64.
Pas de nombres négatifs.
"nbr" >= 0 && <= 18446744073709551615.
Te va ???

ciao...
BruNews, MVP VC++
Messages postés
64
Date d'inscription
vendredi 14 décembre 2001
Statut
Membre
Dernière intervention
19 juin 2010

Exact cher ami... Franchement ca serait super génial si tu pouvais me faire ça, ça fait 15 jours que je cherche à faire une dll dans un autre langage que vb...  En tout cas merci d'avance...

Attention à Astérix, mon Pitt Bull
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Je ferai ce soir en rentrant.

ciao...
BruNews, MVP VC++
Messages postés
64
Date d'inscription
vendredi 14 décembre 2001
Statut
Membre
Dernière intervention
19 juin 2010

Super sympa le BruNews, merci et bon courage, j'attends ta source avec impatience (flute y'a plein de bave sur mon clavier)...

Attention à Astérix, mon Pitt Bull
Messages postés
64
Date d'inscription
vendredi 14 décembre 2001
Statut
Membre
Dernière intervention
19 juin 2010

Franchement c'est trop fort... ça me fait trop plaisir ! Merci beaucoup m'sieur ! en plus je suis sur que tu nous as fait ca en deux clics... Bon ben merci infiniment c'est tout ce qu'il me fallait... Bonne continuation

Attention à Astérix, mon Pitt Bull