De WinInet.dll dynamic link library is een module die Internet - gerelateerde functies gebruikt door veel voorkomende Windows-toepassingen om te communiceren via het internet bevat . U kunt deze DLL gebruiken in uw eigen applicaties , ontwikkeld in een geïntegreerde ontwikkelomgeving , om een bestand van elke omvang downloaden van een website met behulp van een paar eenvoudige buffers en correct berekenen van de bestandsgrootte . Instructies 1 Maak een nieuwe functie die de URL neemt als enige parameter , met deze code : std :: string getURL ( const char * URL ) { < br 2 Insert deze code om een nieuwe constante buffer te creëren om de grootte van de onderdelen die deel uitmaken van uw bestand op te slaan > : const int DownloadBufferSize = 1.024 ; 3 Voeg deze code aan een constante die winkels fouten , voor het geval uw programma werpt een te maken : const std :: string ErrorString = " FOUT " ; Gebruik 4 de HINTERNET functie van WinInet om een internetverbinding te openen , voordat u probeert om het bestand te downloaden, door het invoegen van deze code : HINTERNET hInternet = InternetOpen ( " GINA : Versie 0.1 " , INTERNET_OPEN_TYPE_DIRECT , NULL , 0 , 0 ) if ( hInternet == NULL ) {return ErrorString ; } 5 Open de URL met behulp van deze code : hINTERNET hFile = InternetOpenUrl ( hInternet , URL , NULL , 0 , 0 , 0 ) ; if ( hFile == NULL ) {return ErrorString ; } 6 Maak een buffer die bestandsgrootte houdt door het invoegen van deze code : DWORD sizeBuffer ; DWORD lengte = sizeof ( sizeBuffer ) ; 7 Verkrijg de bestandsgrootte met behulp van deze code : bool slaagt = HttpQueryInfo ( hFile , HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER , & sizeBuffer , & lengte , NULL ) == TRUE ; 8 Maak een nieuwe string naar het bestand op te slaan door het invoegen van deze code : std :: string downloadedContents = " " ; < br > 9 Plaats deze code om het downloaden buffer in te stellen en tel het aantal bytes uw programma downloads : char * downloadBuffer = new char [ DownloadBufferSize ] ; DWORD bytesRead = 0 ; doen { InternetReadFile ( hFile , downloadBuffer , DownloadBufferSize , & bytesRead ) ; 10 Voeg de inhoud van het bestand buffer om het bestand totdat het dossier volledig is door het gebruik van deze code : downloadedContents . append ( downloadBuffer , DownloadBufferSize ) ; } while ( bytesRead = 0 ! ) ; 11 Sluit de WinInet handgrepen en het programma met behulp van deze code : InternetCloseHandle ( hFile ) ; InternetCloseHandle ( hInternet ) ; return downloadedContents ; }
|