Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

FindFirstVolume()

2 réponses
Avatar
Vincent Badier
Bonjour,

Je tente d'utiliser cette fonction, mais elle me pose 2 soucis : elle ne
semble pas définie dans les en-têtes indiqué par msdn, et le linker ne
la trouve pas dans kernel32.lib. J'utilise VS2005 (projet command line
win32).

Voici un ECM qui pose pb chez moi :

#pragma once

#define WIN32_LEAN_AND_MEAN
#include <stdio.h>
#include <tchar.h>
#include <windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
HANDLE Volume;
TCHAR VolumeName[255];

Volume = FindFirstVolume(VolumeName, 255);

return 0;
}

L'erreur reportée est alors :

Erreur 1 error C3861: 'FindFirstVolume': identifier not found
d:\sources\ecm\ecm\ecm.cpp 18


Si j'ajoute la déclaration de la fonction telle que donnée par msdn,
j'obtient :

Erreur 1 error LNK2019: unresolved external symbol "void * __stdcall
FindFirstVolume(wchar_t *,unsigned long)"
(?FindFirstVolume@@YGPAXPA_WK@Z) referenced in function _wmain ECM.obj

A noter que je n'ai pas touché au linker, car il semble déjà inclure
kernel32.lib.

J'ai sans doute fait une erreur bête, mais ne vois pas où. Si une bonne
âme pouvait m'aider, ce serait vraiment sympa.

Vincent

PS : Si j'utilise GetDriveType() dans mon ecm, la compilation passe bien
sans toucher aux réglages VS2005.

2 réponses

Avatar
Christian ASTOR
Vincent Badier wrote:

L'erreur reportée est alors :

Erreur 1 error C3861: 'FindFirstVolume': identifier not found
d:sourcesecmecmecm.cpp 18



#define _WIN32_WINNT 0x0501
Avatar
Vincent Badier
Christian ASTOR a écrit :
Vincent Badier wrote:

L'erreur reportée est alors :

Erreur 1 error C3861: 'FindFirstVolume': identifier not found
d:sourcesecmecmecm.cpp 18



#define _WIN32_WINNT 0x0501


Arg!!!

En voyant ta réponse et en relisant plus attentivement l'article MSDN je
me suis rendu compte que c'était dans la doc....

Désolé et merci beaucoup de ton aide.

Vincent