A biblioteca de vínculo dinâmico WinInet.dll é um módulo que contém funções relacionadas à Internet usado por muitas aplicações comuns do Windows para se comunicar pela Internet. Você pode usar esta DLL em seus próprios aplicativos , desenvolvidos em qualquer ambiente de desenvolvimento integrado, para baixar um arquivo de qualquer tamanho a partir de um site usando alguns buffers simples e corretamente calcular o tamanho do arquivo. Instruções
1
Criar uma nova função que leva o URL como parâmetro único , usando este código:
std :: string GetUrl (char const * URL) {
2
Insira este código para criar um novo buffer constante para armazenar o tamanho das peças que compõem o seu arquivo :
const int DownloadBufferSize = 1024 ;
3
Adicione este código para criar uma constante que armazena os erros , no caso do seu programa gera um:
const std :: string errorString = "ERRO ";
4
Use a função HINTERNET de WinInet para abrir uma conexão com a Internet, antes de tentar baixar o arquivo, inserindo este código:
HINTERNET hInternet = InternetOpen ( " GINA : Versão 0.1 " , INTERNET_OPEN_TYPE_DIRECT , NULL , 0, 0); if ( hInternet == NULL ) {return errorString ;}
5
Abra a URL usando este código:
HINTERNET hFile = InternetOpenUrl ( hInternet , URL , NULL, 0, 0, 0); if ( hFile == NULL ) {return errorString ;}
6
Criar um tampão que mantém o tamanho do arquivo , inserindo este código:
DWORD sizeBuffer ; DWORD comprimento = sizeof ( sizeBuffer );
7
obter o tamanho de arquivo usando este código :
bool consegue = HttpQueryInfo ( hFile , HTTP_QUERY_CONTENT_LENGTH