1

Salut,
g un problème qui me gonfle depuis toute l'aprèm ...
ça doit être un truc à la con de nouveau ...
je veux ouvrir un fichier et ça marche pas.. con non ?
J'ai tapé (le fichier a.txt, il n'est pas utilisé, et ça le fait pour tous les fichiers d'ailleurs) :

HANDLE fd = CreateFile("C:\a.txt",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,0);
if (fd==INVALID_HANDLE_VALUE)
{
DWORD i = GetLastError();
char buf[5];
_itoa(i,buf,10);
MessageBox(0,buf+'\0',"Erreur numéro",MB_OK | MB_ICONEXCLAMATION);
// CA PASSE TOUJOURS ICI !!!! c tout le temps mauvais ...


}
else
{
char buf[5];
_itoa(GetFileSize(fd,NULL),buf,10);
MessageBox(0,buf,"kjkj",MB_OK);
}
CloseHandle(fd);

Qqn voit ce qui merde ?
Merci

2

1. C'est une question API Win32 ça, pas une question C++. Mais bon, on est quand-même dans le forum le plus adapté.
2. Quel est le numéro d'erreur que tu reçois? Ça permettrait de comprendre mieux ce qui cloche. (Les numéros d'erreur de l'API Win32 sont documentés.)
3. Pourquoi ne pas utiliser tout simplement fopen au lieu de ce charabia non-portable?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

tu as tout a fait raison au niveau du charabia non portable, mais bon c t pour le debug.
pour fopen aussi t'as raison, je voulais l'utiliser mais c exactement pareil, ça marche pas.
le numéro de l'erreur que j'obtiens c : 123.

4

ah oui j'ai oublié de préciser un truc aussi, je suis dans une dll mais bon même quand je compile le même code dans un executable ça sort la même erreur ...

5

C'est ERROR_INVALID_NAME. "The filename, directory name, or volume label syntax is incorrect." Bref, c'est ton nom de fichier qu'il n'aime pas.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

6

je sais mais c pareil avec TOUS LES NOMS de fichier !!!
c pour ça que je pige pas ...
parce que je savais que ça correspondait à ça l'erreur...
maintenant regarde même code mais avec fopen :

char buf[1];
FILE* fd;
if ((fd=fopen("C:\temp.tmp","r"))==NULL)
{
MessageBox(0,"Erreur lors de l'ouverture du fichier","Erreur",MB_OK | MB_ICONEXCLAMATION);
}
else
{
for(int i=0;i<longueur;i++)
{
fread(buf,1,1,fd);
tableau[1][buf]++;
}
}
fclose(fd);

ben comme par hasard c pareil, il passe que dans le truc d'erreur .. tu vois une explciation ?

7

peut etre parce que le \t dans ton nom de fichier est interprété en C comme le caractere tabulation...
essayes ca:
f ((fd=fopen("C:\temp.tmp","r"))==NULL)

8

OUI C CA !! BRAVOO !!! franchement c bien vu ! putain dire que je cherche depuis cet arpèm pour un truc aussi con !
merci en tout cas !