Bonsoir,
J'ai un problème un peu bizarre lors de l'utilisation de la méthode Open de la classe CFile. Je vous transmet le code :

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
23
24
25
26
27
28
29
30
31
32
 
 
#include "stdafx.h"
#include "ParserVrml.h"
 
int CParserVrml::ReadFile(char *filename)
{
	m_FileName = filename;
 
	CFile file;
	CFileException ex;
 
         // Opening
	TRACE("  opening...");
 
        if(!file.Open(filename, CFile::modeRead | CFile::typeBinary, &ex))
	{
		#ifdef _DEBUG
		afxDump << "File could not be opened " << ex.m_lOsError << "\n";
		#endif
		TRACE("unable to open file for reading\n");
		return 0;
	}
 
	TRACE("ok\n");
 
       // Size file
	m_SizeFile = file.GetLength();
	//m_SizeFile = file2->_bufsiz;
	TRACE("  length : %d bytes\n", m_SizeFile);
...
}
Pas d'erreurs de compilation, lorsque j'exécute la chaine "filename" prend la valeur "c:\\standingstart.wrl". J'ai bien verifié qu'il existe un fichier avec ce nom. Un fichier texte précisément, et qu'aucun autre programme n'utilise ce fichier lors de l'exécution.
Pourtant l'exception levée par "ex" est 32 qui indique qu'un autre processus a ouvert le fichier.
Le code dans un autre projet fonctionne parfaitement.

Avez vous des suggestions sur les causes possibles de cette erreur?
Merci.