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:



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);
}
Quand je teste fichier, l'adresse du fichier est correcte.
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);