Convertir un grand décimal en hex

Résolu
superchinois Messages postés 64 Date d'inscription vendredi 14 décembre 2001 Statut Membre Dernière intervention 19 juin 2010 - 4 juin 2007 à 09:21
superchinois Messages postés 64 Date d'inscription vendredi 14 décembre 2001 Statut Membre Dernière intervention 19 juin 2010 - 4 juin 2007 à 21:51
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 juin 2007 à 20:15
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++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 juin 2007 à 10:11
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++
0
superchinois Messages postés 64 Date d'inscription vendredi 14 décembre 2001 Statut Membre Dernière intervention 19 juin 2010
4 juin 2007 à 10:18
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
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 juin 2007 à 10:38
Il n'y a jamais de .net ni aucun autre interprété dans mes codes.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
superchinois Messages postés 64 Date d'inscription vendredi 14 décembre 2001 Statut Membre Dernière intervention 19 juin 2010
4 juin 2007 à 11:00
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
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 juin 2007 à 15:23
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++
0
superchinois Messages postés 64 Date d'inscription vendredi 14 décembre 2001 Statut Membre Dernière intervention 19 juin 2010
4 juin 2007 à 15:41
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
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 juin 2007 à 15:53
Je ferai ce soir en rentrant.

ciao...
BruNews, MVP VC++
0
superchinois Messages postés 64 Date d'inscription vendredi 14 décembre 2001 Statut Membre Dernière intervention 19 juin 2010
4 juin 2007 à 15:57
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
0
superchinois Messages postés 64 Date d'inscription vendredi 14 décembre 2001 Statut Membre Dernière intervention 19 juin 2010
4 juin 2007 à 21:51
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
0
Rejoignez-nous