begin process at 2012 05 29 07:55:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Fichier & Disque

 > 

LPCVOID - Modifier le contenu


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

LPCVOID - Modifier le contenu

mardi 6 juin 2006 à 18:06:50 | LPCVOID - Modifier le contenu

noobs

Salut!

C'est mon premier post

Bon ma question est la suivante :

J'ai une fonction write_to_file(LPCVOID texte) qui se charge d'ecrire une chaine dans un fichier à l'aide de l'api Writefile(). Quand je l'appelle je le fait sois en lui envoyant la chaine directement entre guillements write_to_file("Valeur :") , sois en lui envoyant un WORD write_to_file( &char).
Jusque là pas de problème.

Seulement voilà, j'aimerais rajouter à cette fonction un petit codage ultra rapide du type texte[i]^=0xAA mais impossible d'interagir avec texte : taille du lpcvoid inconnue !
J'ai essayé de faire des cast (char[]) et (char *) ou *(texte+i) mais ca ne fonctionne pas. Pourtant quand j'appelle strlen() en faisant un cast (const char *) et bien là strlen me retourne bien la bonne taille de texte.

Je me tourne donc vers vous pour vous demander s'il est possible de faire ce que je veux et si oui de quelle manière.

Merci.

mardi 6 juin 2006 à 18:43:32 | Re : LPCVOID - Modifier le contenu

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
LPCVOID -> déja le C indique que c'est un pointeur constant (impossible de modifier ce sur quoi il pointe) Pour faire tes opérations, il te faudrait un LPBYTE par exemple Ta fonction devrait plutot avoir cette forme: write_to_file(LPBYTE texte, int length) { LPBYTE p, end = texte + length; for(p = texte, p != end; *p++ ^= 0xAA); WriteFile(...); // Remet le texte dans son état d'origine for(p = texte, p != end; *p++ ^= 0xAA); } Sinon, tu peux allouer un deuxième buffer, pour éviter de devoir faire le décodage ensuite
mardi 6 juin 2006 à 20:00:07 | Re : LPCVOID - Modifier le contenu

noobs

Salut vecchio,
merci de ton aide.

Alors j'ai bien remplacé les arguments attendus par ma fonction par write_to_file(LPBYTE texte, int length).
Ca ne fonctionnait plus mais en castant l'argument a chaque fois que j'appelle write_to_file() ca refonctionne sans problème : write_to_file((LPBYTE)"Valeur :") et write_to_file((LPBYTE)&char).

Seulement impossible d'appliquer le codage, j'ai bien essayé avec ta ligne for(p = texte, p != end; *p++ ^= 0xAA) que j'ai bien comprise et avec plusieurs autres équivalents mais le programme ne passe étrangement jamais ce cap comme si la boucle était sans fin ?!

Je vais chercher et je tiens tout le monde au courant au cas ou quelqun en ait besoin plus tard. Je te valide ton post une fois le problème intégralement solutionné.

Merci pour l'info sur le C de LPCVOID, j'ai toujours supposé que LP voulait dire long pointer, mais je ne voyais pas ce que pouvais bien vouloir dire le C.

A+
mercredi 7 juin 2006 à 00:51:00 | Re : LPCVOID - Modifier le contenu

noobs

Salut,
je n'ai toujours pas trouvé de solution à mon problème.

Par contre quand je place un MessageBox( NULL, texte, "DEBUG", MB_OK) au début de write_to_file( LPBYTE texte), tout fonctionne, si je le précède juste d'une texte[0]='A' ou bien encore d'un strcpy(texte,"A") et bien plus rien ne s'affiche.

Le mystère reste entier, personne n'a d'idée.
Je vous préviens si je trouve.

A+
mercredi 7 juin 2006 à 08:25:25 | Re : LPCVOID - Modifier le contenu

DMK04

Salut,

je ne connais pas ^= (mais je vais me renseigner ), mais en faisant "*p++ ^= 0xAA" tu modifies ton 'p' de depart ?? As tu essayé "*++p ^= 0xAA" ?
mercredi 7 juin 2006 à 09:10:17 | Re : LPCVOID - Modifier le contenu

vecchio56

Administrateur CodeS-SourceS
Non c'est bien *p++ car sinon le premier octet ne sera pas modifié
mercredi 7 juin 2006 à 10:43:25 | Re : LPCVOID - Modifier le contenu

DMK04

Ah ok.

Et pour l'info,  ^= ca fait quoi ? Vive les moteurs de recherche... Ils prennent pas en compte les accents et tout le bordel... (ou alors je ne sais pas m'en servir, ce qui est possible aussi)

A+
mercredi 7 juin 2006 à 11:25:01 | Re : LPCVOID - Modifier le contenu

vecchio56

Administrateur CodeS-SourceS
^ c'est le ou exclusif
mercredi 7 juin 2006 à 12:07:19 | Re : LPCVOID - Modifier le contenu

DMK04

Ahhhh ok, merci :)
mercredi 7 juin 2006 à 16:38:22 | Re : LPCVOID - Modifier le contenu

noobs

Salut.

Bon alors merci DMK04, mais comme le dit vecchio, c'est p++ qui correspond ici.
J'arrive vraiment pas à trouver, je suis dans l'impasse pourtant je suis sur que c'est relativement simple mais je découvre Vs et l'api windows.

Je vous ai mis un mini example <<ICI>>
Comme ca vous pourrez vous rendre compte par vous même que ca fonctionne très bien tant qu'on a pas toucher à texte.

Merci d'encore pretter attention à ma question.

1 2

Cette discussion est classée dans : texte, to, char, write, lpcvoid


Répondre à ce message

Sujets en rapport avec ce message

char tab[]=a; [ par zelze ] Voila mon probleme:je connais char tab[]="ton texte"; mais se que je veux faire c'est a la place de "ton texte" mettre une variable.j'ai essaié plusie int to char ! [ par nullspace ] Voila mon problème !J'ai une résultat sous forme de variable INT, et je veux que ce résultat soit affecté à une variable de type CHAR.Genre, si j'ai 6 Unsigned char to AnsiString et Ansistring to UnS Char??? [ par asik38 ] Comment on fait pour convertir unsigned char an ansistringEt de AnsiString en unsigned char*Merci!!! char* to unsigned char* [ par rodrigos ] comment peut-on convertir un char* en unsigned char*?à quoi correspond un unsigned char*?Merci pour votre aide!! INT TO CHAR [ par nicolas66 ] Salut tlm c encore moi ..cette fois-ci j'aimerai convertir un int en char mais je n'y arrive pas :(. J'ai essayé de faire comme sur une source sur le integer to char[] [ par oeT ] Bonjour à tous,Y'a il une fonction qui fait l'inverse de atoi() ??C'est à dire qui fait une conversion d'un integer en chaines de caractère !MerciBfB conversion char to float et inversement [ par izle ] IzLe,je souhaite convertir des "float" en char afin de les afficher dans une bare d'état, existe-t-il une fonction qui fait ça? Switch texte [ par lastpixl ] Est-il possible de faire un switch sur du texte ? Mon compilateur me fait une erreur à chaque fois que j'essaie avec une chaine.ca marche avec un char client smtp probleme [ par lombredudragon ] Voila j'ai trouver un joli code sur le web. J'ai fait le menage et j'ai supprimer l'interface graphique.Donc mon but final c'est d'envoyer un fichier Programme en C [ par tweeti08 ] Voila mon problème, je débute dans le C et j'ai commencer un programme permettant de crypter par les carctère alphabétique mais le hic c ke je sui pa


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales