Bonjour,
malgré avec recherché en vain partout sur le net, je n'arrive pas a résoudre mon problème:
J'utilise la fonction "GetDiskFreeSpace" pour savoir si les lecteurs me donnent la possibilité d'écrire dessus. Mais lorsque cette fonction est appelé, par exemple, avec un lecteur de carte ou il n'y a pas de carte dedans, j'ai le droit à un message d'erreur avec le message :
Exception Processing Message c0000013 Parameters 5ffa1d6c 5ffa1d6c 5ffa1d6c 5ffa1d6c
Ca me fait la même chose avec le lecteur de disquette quand il n'y a pas de disquette dedans!
Mais le pire, c'est que sur les 5 PC ou j'ai testé ça, je n'ai ce problème que sur 2 d'entre eux.
Donc voila, si vous savez comment éviter l'apparition de ce message...
Je poste mon code, ça pourrait être utile :
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 wstring result(L""); WCHAR szBuffer[1024]; ::GetLogicalDriveStringsW(1024, szBuffer); WCHAR *pch = szBuffer; DWORD NombreDeSecteursParCluster; DWORD NombreDOctetsParSecteur; DWORD NombreDeClustersLibres; DWORD NombreTotalDeClusters; while (*pch) { short Type = (short)GetDriveType(pch); // On teste si le support est amovible ou fixé if (Type == DRIVE_REMOVABLE || Type == DRIVE_FIXED){ // On teste l'espace disque pour savoir si on peut ecrire dessus if (GetDiskFreeSpaceEx(pch, &NombreDeSecteursParCluster, &NombreDOctetsParSecteur, &NombreDeClustersLibres, &NombreTotalDeClusters)){ result += L"," ; result += pch; } } pch = &pch[wcslen(pch) + 1]; }
Partager