-
Cómo descargar un archivo de WinInet.dll
-
La biblioteca de vínculos dinámicos WinInet.dll es un módulo que contiene funciones relacionadas con Internet utilizados por muchas aplicaciones comunes de Windows para comunicarse a través de Internet. Puede utilizar este archivo DLL en sus propias aplicaciones, desarrolladas en cualquier entorno de desarrollo integrado, para descargar un archivo de cualquier tamaño, desde un sitio web mediante el uso de un par de amortiguadores sencillos y calcular correctamente el tamaño del archivo.
Instrucciones
1 Crear una nueva función que toma la URL como su único parámetro, utilizando este código:
std :: string getURL (const char * URL)
{2 Introduzca este código para crear un nuevo buffer constante para almacenar el tamaño de las piezas que componen su archivo:
const int DownloadBufferSize = 1024;
3 Añadir este código para crear una constante que almacena los errores, en caso de que su programa lanza una:
const errorString std :: string = "error";
4 Utilice la función HINTERNET de WinInet para abrir una conexión a Internet, antes de intentar descargar el archivo, mediante la inserción de este código:
HINTERNET HINTERNET = InternetOpen ( "GINA: Versión 0.1", INTERNET_OPEN_TYPE_DIRECT, NULL, 0,0);
si (HINTERNET == NULL) {
volver errorString;
}5 Abra la dirección URL utilizando este código:
HINTERNET hFile = InternetOpenUrl (HINTERNET, URL, NULL, 0, 0, 0);
si (hFile == NULL) {
volver errorString;
}6 Crear un tampón que mantiene el tamaño del archivo mediante la inserción de este código:
DWORD sizeBuffer;
DWORD longitud = sizeof (sizeBuffer);7 Obtener el tamaño del archivo mediante el uso de este código:
bool tiene éxito = HttpQueryInfo (hFile, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER, y sizeBuffer, y la longitud, NULL) == TRUE;
8 Crear una nueva cadena para almacenar el archivo mediante la inserción de este código:
downloadedContents std :: string = "";
9 Insertar este código para establecer la memoria intermedia de descarga y contar el número de bytes sus descargas de programas:
char * downloadBuffer = new char [DownloadBufferSize];
DWORD BytesRead = 0;hacer{
InternetReadFile (hFile, downloadBuffer, DownloadBufferSize, y BytesRead);10 Anexar el contenido de la memoria intermedia de descarga al archivo hasta que el archivo se haya completado mediante este código:
downloadedContents.append (downloadBuffer, DownloadBufferSize);
} While (BytesRead = 0!);11 Cerrar las llaves del WinInet y el programa utilizando este código:
InternetCloseHandle (hFile);
InternetCloseHandle (HINTERNET);
downloadedContents regresar;
}