Accueil > Forum > > > > LPCVOID - Modifier le contenu
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
|
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
|
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
|
mercredi 7 juin 2006 à 12:07:19 |
Re : LPCVOID - Modifier le contenu
|
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.
|
|
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
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft 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
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
|