Convertion VB -> C++ aide svp.

krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007 - 9 juin 2007 à 22:52
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 10 juin 2007 à 22:09
Voilà, je dois convertir une fonction VB en c++, j'ai déjà commencé (même terminé) la convertion avec celui qui a fait cette fonction mais je ne sais pas si c'est presque bon ou pas du tout, donc j'aurai besoin de votre aide svp.

Voici le code en VB :

http://rafb.net/p/18KbSm52.html

et le mien en c++ :

http://rafb.net/p/1aOHfJ68.html

Voilà merci de votre aide.

17 réponses

krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007
9 juin 2007 à 23:09
Zut c'est du VB.net pas du vb désolé.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 juin 2007 à 23:24
Aussi nul que du VB, 'string += ...' fera autant de alloc desalloc qu'en VB, autant le laisser.

ciao...
BruNews, MVP VC++
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
10 juin 2007 à 09:31
Salutint ANB (APass + (int)PKey % sizeof(HASH)) % sizeof(HASH);>
int ANB = (APass + (int)PKey) % sizeof(HASH);

deja
ensuite, c'est clair qu'un truc genre :
_Crypted[i*2]=HASH[ANB];
_Crypted[i*2+1]=HASH[ANB2];

ca serait deja un poil mieux que
_Crypted += (HASH[ANB] + HASH[ANB2]);

sinon, t'as mis :
float FPass = (int)PPass;
int APass = floor(FPass / 16);

pourquoi ne pas mettre directement :
int APass = PPass / 16;

    ?

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007
10 juin 2007 à 17:53
Salut, merci de vos réponses.

Coucou747 -> j'ai mis floor car on m'a dit que c'est l'équivalent de Math.floor(je sais pas à quoi elle sert cette fonction).

Ensuite :

_Crypted[i*2]=HASH[ANB];
_Crypted[i*2+1]=HASH[ANB2];

Le prog se ferme à ces lignes :

La bibliothèque Microsoft Visual Studio C Runtime a détecté une erreur fatale dans Executable.exe.

Voilà merci.
0

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

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
10 juin 2007 à 18:29
Salut

je ne sais pas trop comment dit a un String d'avoir une certaine taille...

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 juin 2007 à 18:45
Si on regarde l'algo, la taille est précalculable au début et on peut donc faire une seule alloc d'un buffer chat[].
On pourrait ainsi directement adresser l'élément.

ciao...
BruNews, MVP VC++
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
10 juin 2007 à 18:48
sur un char* oui, mais pas sur un String

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 juin 2007 à 19:54
Bosser sur le string est un non sens en terme de perfs, suffira d'affecter le char[] au string en sortie.

ciao...
BruNews, MVP VC++
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
10 juin 2007 à 19:55
Si:

std::string::reserve(...)
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
10 juin 2007 à 20:09
Lieber BruNews... quand je repond a quelqu'un sur phpcs je ne lui sors pas "va faire du perl plutot que de bouffer autant de perfs"...

il a choisi de faire du Cpp et pas du C deguise... c'est son choix...

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 juin 2007 à 20:21
Le cpp autorise l'accès mémoire direct sur un buffer, s'il attribue en sortie à un string ce sera encore du cpp.
cpp englobe tout le C, inutile et nuisible d'éjecter cette partie.

ciao...
BruNews, MVP VC++
0
krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007
10 juin 2007 à 21:46
Salut à tous, j'ai réglé le problème :

string _Crypted = "#1";

for(int i = 0; i < Password.length(); i++)
{
char PPass = Password[i];

char PKey = Key[i];

int APass = (int)PPass / 16;

int AKey = (int)PPass % 16;

int ANB = (APass + (int)PKey) % sizeof(HASH);
int ANB2 = (AKey + (int)PKey) % sizeof(HASH);

_Crypted += HASH[ANB];
_Crypted += HASH[ANB2];

}
return _Crypted;
}

Maintenant j'aimerai savoir si qqun connaît l'équivalent de chr(10) en c++ svp ?
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
10 juin 2007 à 21:48
Salut

char a=10;

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007
10 juin 2007 à 21:56
Salut merci, je t'explique mon dernier problème

En fait je dois un truc qui ressemble à ça :

Misugikro + 10 + PasswordCrypter + 10;

le problème c'est que je n'y arrive vraiment pas :

char Fin = 10;

char Real[256];

strcat(Real, "Misugikro");
strcat(Real, Fin (ça prend un const char ici donc je bloque));
strcat(Real, PasswordCrypter);
strcat(Real, la même chose const char);

Merci de ton aide.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 juin 2007 à 22:04
Voici le résultat du CPPisme coucou, aucune base en prog et pas avec des 'string += ..' et autres balivernes de ce genre qu'il va les acquérir.

ciao...
BruNews, MVP VC++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 juin 2007 à 22:08
char *d = Real, *c;
c = "Misugikro";
while(*d = *c) {c++; d++;}
*d++ = 10;
c = PasswordCrypter;
while(*d = *c) {c++; d++;}
*d++ = 10;


strlen vaut (d - Real) sans recalcul.

ciao...
BruNews, MVP VC++
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
10 juin 2007 à 22:09
j'avoue...

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
Rejoignez-nous