Bonjour,
J'ai déjà utilisé WriteFile mais je n'ai jamais eu ce problème et je n'arrive pas à trouver l'origine du bogue:
J'ai fait une fonction pour enregistrer temporairement l'adresse d'un fichier dans un fichier texte. Voici la fonction:
Quand je teste fichier, l'adresse du fichier est correcte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 void fichierTemporaireEcrire(char *fichier) { HANDLE hFichier=NULL; DWORD nbcharRead= 0; hFichier = CreateFile( "~fichier.tmp", GENERIC_WRITE, 0,NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); SetFilePointer( hFichier,0,0,FILE_BEGIN); //La ligne qui suit est un simple test pour voir ce que contient fichier MessageBox(NULL,fichier,"",MB_OK); WriteFile(hFichier, &fichier,sizeof(char)*256, &nbcharRead, NULL); CloseHandle(hFichier); }
Mais dans ~fichier.tmp l'adresse est précédée de 16 caractères ... j'ai beau tourner le problème dans tous les sens je n'arrive pas à enlever ces 16 caractères... qq'un voit l'erreur ?
Merci !
Edité: je suis sur cette erreur depuis assez longtemps et il suffit que je pose la question ici pour que je trouve seule la réponse !!
Honte à moi j'ai mis & devant fichier
Avec ce code tout fonctionne .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 WriteFile(hFichier, fichier,sizeof(char)*256, &nbcharRead, NULL);
Partager