Bonjour à tous,
Je découvre totalement la programmation avec l'API Win32.
J'avais auparavant posté dans une autre catégorie et il est ressorti qu'il fallait que j'utilise l'API Windows pour résoudre mes problèmes (adressage et positionnement d'un pointeur dans des fichiers pouvant excèder 4 Go).
Ne conaissant que très peu l'API, je doit omettre quelquechose car je ne parviens pas à compiler.
De plus je ne sais pas comment lier une librairie, ce n'est pas très clair pour moi.
Voici le code qui pose problème:
La compilation bloque à la ligne de GetFileSizeEx.
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
25 #include <cstdlib> #include <iostream> #include <Windows.h> #include <WinBase.h> using namespace std; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { HANDLE monfichier=CreateFile("C:\\Users\\Aurelien\\Documents\\Progra\\fich\\test.txt",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL); //HANDLE hfic=CreateFile(fichier,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL); char tab[2] = "A"; string texte = "montexte"; SetFilePointer(monfichier, 0, NULL, FILE_END); WriteFile(monfichier,&texte,sizeof(texte),NULL,NULL); LARGE_INTEGER t; BOOL taille=GetFileSizeEx(monfichier,&t); //sprintf(tab, "taille égale %d",taille); if(monfichier==INVALID_HANDLE_VALUE){ MessageBox(NULL,tab,"erreur",MB_OK| MB_ICONEXCLAMATION); } return 0; }
J'ai ajouté dans l'éditeur de lien "libkernel32.a" présent dans le repertoire lib de DevC++.
Dois-je linker des DLL? Sont elles chargées automatiquement? Les librairies ne sont elles pas présentes sous Windows?
J'ai lu sur le site qu'il fallait un SDK, mais je ne comprends pas pourquoi étant donné que l'API fait parti de Windows, de plus le lien était pour Windows Server 2003.
Si quelqu'un peut m'expliquer ce qui ne va pas et comment je dois procéder car j'ai beau chercher je ne comprends pas vraiment.
Merci
Partager