Probleme api

Résolu
cs_miki42 Messages postés 23 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 24 août 2008 - 30 juil. 2008 à 13:11
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 - 30 juil. 2008 à 16:55
bonjour a tous voila j'ai un petit souci de compilation avec une api voila le code:

<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
 
#include <stdio.h>
#include <stdlib.h>
#include<windows.h>
 
int main(int argc, char *argv[])
{
LPCSTR *bu[100];
FindFirstVolume(&bu,100);
system("PAUSE");
return0;
}
 
 

<!-- END TEMPLATE: bbcode_code -->j'obtien cette erreur bizarre


Compilateur: Default compiler

Building Makefile: "C:\Users\miki\Desktop\Makefile.win"

Exécution de make...

make.exe -f "C:\Users\miki\Desktop\Makefile.win" all

gcc.exe -c tes.c -o tes.o -I"C:/Dev-Cpp/include"


gcc.exe tes.o -o "test.exe" -L"C:/Dev-Cpp/lib"


tes.o(.text+0x45):tes.c: undefined reference to `FindFirstVolume'

collect2: ld returned 1 exit status


make.exe: *** [dddd.exe] Error 1


Exécution terminée


j'ai était faire un chtit tour dans winbase et la fonction
FindFirstVolume y et bien déclarer alors si quelqu'un pouvait
m'éclairer sur le pourquoi du comment de l'erreur de compilation ça
serai sympa merci d'avance

3 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
30 juil. 2008 à 14:40
Salut,
FindFirstVolume() n'est disponible que dans Windows 2000 et suivants. Il faudra donc permettre au compilateur de la reconnaitre en ajoutant avant les includes:
#define _WIN32_WINNT  0x0500
3
cs_miki42 Messages postés 23 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 24 août 2008
30 juil. 2008 à 15:27
Merci beaucoup racpp c'était bien ça et maintenant ça marche merci encore pour l'aide je bloquait dessus depuit un moment
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
30 juil. 2008 à 16:55
LPCSTR *bu[100];
FindFirstVolume(&bu,100);
???

T'est sur que ton code fonctionne?
LPCSTR *bu[100]; est un tableau de pointeur constant, et le premier parametre de FindFirstVolume doit etre un pointeur sur une chaine de caractere..

Remplace plutot par:
char szFirstVolume[MAX_PATH+4];
FindFirstVolume(szFirstVolume, (MAX_PATH+4));

Neo_Fr
0
Rejoignez-nous