Bonjour,
Je n'arrive pas à extraire le nom d'un volume à partir de sa lettre de lecteur.

Voici un code tout simple qui est cencé fonctionner mais en fait la chaine est vide (j'ai trouvé ce code sur internet en reponse à une question similaire, mon code est identique, j'ai juste l'enumeration des volumes en plus avec GetLogicalDriveStrings(), mais le constat est le même, je vous met donc le codele plus reduit et simple a analyser)


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
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <string>
 
int main(int argc, char* argv[])
{
	char volName[256];
	DWORD volSerial;
	DWORD nameLen;
	DWORD volFlags;
	char volFS[256];
	GetVolumeInformation("c:\\", volName, 255, &volSerial, &nameLen, &volFlags, volFS, 255);
	printf("Nom de volume : %s\n", volName);
	return 0;
}
En debugant, on a volName qui est "" et nameLen qui vaut 255.
il doit vraiment y avoir un truc tout bête que je ne vois pas, c'est pas possible autrement...

Le plus drole c'est que le reste fonctionne bien (serial, filesystem (ntfs)...)

Si quelqu'un pouvait m'aider, d'avance merci !