Je souhaite utiliser la classe CFile présente dans les MFC pour créer les fichiers relatifs a mon application.

j'ai testé le code fourni par MSDN:

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
17
18
19
20
21
22
HANDLE hFile = CreateFile(_T("C:\\MyFile.DAT"),
         GENERIC_WRITE, FILE_SHARE_READ,
         NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
 
   if (hFile == INVALID_HANDLE_VALUE)
      AfxMessageBox(_T("Couldn't create the file!"));
   else
   {
      // Attach a CFile object to the handle we have.
      CFile myFile(hFile);
 
      static const char sz[] = "Hockey is best!";
 
      // write string, without null-terminator
      myFile.Write(sz, lstrlen(sz));
 
      // We can call Close() explicitly, but the destructor would have
      // also closed the file for us. Note that there's no need to
      // call the CloseHandle() on the handle returned by the API because
      // MFC will close it for us.
      myFile.Close();
   }

mais j'obtiens l'erreur suivante a la compilation :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
error C2664: '__thiscall CFile::CFile(int)' : cannot convert parameter 1 from 'void *' to 'int'
La j'avoue que je ne comprends pas trop...

Je sais qu'il y'a moyen de se passer du Handle en prenant l'autre constructeur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
CFile(
   LPCTSTR lpszFileName,
   UINT nOpenFlags 
);
mais j'ai besoin de modifier les attributs du fichier créé et la méthode avec le Handle le permet...

Est ce que quelqu'un a déja été confronté au probleme??? C'est surement tres simple mais je vois pas. Merci d'avance