Accueil > Forum > > > > Conversion de type
Conversion de type
dimanche 20 septembre 2009 à 14:32:14 |
Conversion de type

rfad
|
Bonjour,
Je développe une DLL en Visual C++ "Visual Studio 8" avec des fonctions qui font du cryptage. Une des fonctions doit prendre un unsigned long long comme paramètres. Cette fonction doit être ensuite utilisée par une autre équipe dans un développement Visual Basic 6.0. Comme vous pouvez le devinez, le type unsigned long long n'existe pas dans VB, donc j'ai modifié le paramètre pour que ce soit une chaine de caractère. Mon problème est : comment je peux transformer une chaine pour qu'elle soit lue dans Visual C++ comme si elle était de type unsigned long long. Je m'explique comment une chaine comme "9250003068290380" peut être lue comme
0x9250003068290380
Merci de vos réponses.
|
|
dimanche 20 septembre 2009 à 15:34:37 |
Re : Conversion de type

juju12
|
C'est pas super simple de lire une chaîne VB en C;
pourquoi ne passerais-tu pas plutôt 2 arguments de type long, du genre :
FunctionFromDll(long dwHighPart,long dwLowPart);
|
|
dimanche 20 septembre 2009 à 16:05:04 |
Re : Conversion de type

rfad
|
Bonjour juju12,
Merci de ta réponse, Oui c'est peut être une idée à creuser. je sais que ce n'est pas super suimple de lire une chaine VB en C mais est ce qu'il y a une réponse à ma question ?
|
|
dimanche 20 septembre 2009 à 17:44:43 |
Re : Conversion de type

juju12
|
Convertir une chaîne hexa en nombre?
Par exemple :
Code C/C++ :
char data[]="12B356798FF5"; // A-F en majuscules
long long result=0;
for(char*str=data;*str;str++)
{
if(*str<='9') result+=(*str)-'0';
else result+=(*str)-'A';
result*=10;
};
|
|
dimanche 20 septembre 2009 à 17:46:31 |
Re : Conversion de type

juju12
|
Oups désolé petite erreur faut multiplier par 16 (0x10) et pas par 10.
|
|
dimanche 20 septembre 2009 à 21:58:56 |
Re : Conversion de type

BruNews
|
On dev en C, en C++, en ASM, en ... ce qu'on voudra mais absolument pas en Visual C++ qui est un IDE et non un langage.
Une chaine depuis vB se prend en param char* (pointeur) comme nimporte quelle API. Se déclare "ByVal String" depuis VB.
Exemples:
DLL C ET ASM POUR VB
http://www.cppfrance.com/code.aspx?id=20672
TRAITER STRING VB PAR DLL C/C++ (WIN32)
http://www.cppfrance.com/code.aspx?ID=30115
DWORD __stdcall HexaToDecimal(const char* pszHexa)
{
DWORD ret = 0, t = 0, n = 8, c;
while(c = *pszHexa) {
if((c >= '0') && (c <= '9')) t = (c - '0');
else if((c >= 'A') && (c <= 'F')) t = (c - 'A' + 10);
else if((c >= 'a') && (c <= 'f')) t = (c - 'a' + 10);
else break;
ret *= 16; ret += t;
pszHexa++;
if(--n == 0) break;
}
return ret;
}
Toutes les fonctions de ta DLL doivent être en standard STDCALL pour Win 32 bits x86.
ciao...
BruNews, MVP VC++
|
|
dimanche 20 septembre 2009 à 22:46:27 |
Re : Conversion de type

rfad
|
Merci BruNews mais je n'arrive pas à avoir le bon résultat.
en effet dans ma fonction quand je mets :
unsigned long long Code;
Code = 0x9250003068290380;
traitement....
j'ai un résultat.
mais quand je fais
Code = HexaToDecimal(VCode); // avec VCode le paramètre de la fonction, j'ai tout a fait un autre résultat. Vcode a été initialisé à "9250003068290380"
Dites moi ce que je dois faire ou ce que je n'ai pas fait.
Merci.
|
|
lundi 21 septembre 2009 à 17:27:36 |
Re : Conversion de type

BruNews
|
1) type 'long long' connais pas, mettre __int64.
2) Je te passe une fonction HexaToDecimal(), elle retourne DWORD. Tu la modifies pour q'elle sorte du unsigned __int64, assuré qu'il ne faut pas plus de 3 secondes pour cette modif.
ciao...
BruNews, MVP VC++
|
|
Cette discussion est classée dans : long, visual, type, chaine, unsigned
Répondre à ce message
Sujets en rapport avec ce message
conversion en unsigned long [ par flatou ]
voila j'ai un type de donnée défini comme suit :typedef unsigned long long my_ulonglong;#endifc'est un type de donnée MySQL. Or j'ai vu que pour utili
Traduction du C++ vers VB [ par zgezou ]
Bonjour, je suis nouveau en programmation et j'aimerais savoir comment traduire du C++ en VB. En fait j'ai besoin d'utiliser des fonctions se
type unsigned long long avec borland c++ [ par douss4 ]
Bonjour,Je fait actuellement un programme de cryptage qui utilise une clé de 64 bits, ce qui correspond à la taille (d'après mes recherches) d'un unsi
code pour microcontroleur [ par develdelphi ]
Bonjour, J'ai un code pour microcontroleur,et je ne comprend pas certaines ligneset il s'agit d'opérations sur bits que voici: le programme://////
L'accés aux fichiers en Visual C++ [ par Dell54 ]
C'est dell du 54 (M&M), Coucou comment vont les cocos ?Je ne dirais pas que suis un développeur chevronné, mais pas un débutant non plus.... Je
thread [ par dev_hy ]
voila je veux utiliser les threads sous windows. alors j'ai crée un classe thread, dans la méthode de créeation de thread toute est bon mais il m'affi
PortSerie [ par Florenzau ]
Bonjour, j'ai un probleme avec mon appli, elle se bloque quand je lui dis: unsigned long I; ReadFile(h,b,n,(unsigned long * )&I,NULL);
Besoin d'aide avec Visual C++ 2005 Express [ par cadavor ]
Bonjour,Je cherche désespéremment un cours de visual C++ WindowsForms!J'ai un programme (sniffer) qui marche très bien en application console, et je d
asservissement pid a base du mcb2130 et un lmd18200t [ par marabou34 ]
salut a tous j ai un petit problème pour implanté un asservissement de position et de vitesse je suppose que je doit faire des interruption timer pour
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|