Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Descargar Archivos de un servidor c++

Estas en el tema de Descargar Archivos de un servidor c++ en el foro de C/C++ en Foros del Web. Muy buenas Llevo dias intentado hacer una funcioncita desde el dev c++ que me permita bajarme unos ficheros .txt alojados en una web los cuales ...
  #1 (permalink)  
Antiguo 10/02/2010, 09:46
 
Fecha de Ingreso: diciembre-2007
Ubicación: Valencia
Mensajes: 92
Antigüedad: 16 años, 4 meses
Puntos: 3
Exclamación Descargar Archivos de un servidor c++

Muy buenas

Llevo dias intentado hacer una funcioncita desde el dev c++ que me permita bajarme unos ficheros .txt alojados en una web los cuales con otros procedimientos actualizare.

Se que para obtener información de servidor quizas seria mas rentable u optimizado utilizar una base de datos como mediador de esa información, pero solo puedo utilizar ficheros para la comunicación entre una web y el programa en c++. ( ya que es para un trabajo , para el modulo Superior DAI 1 y teoricamente no deberia saber ni lo que es una base d datos xDD)


Código:
#include <windows.h>
#pragma comment(lib, "urlmon.lib")
#include <urlmon.h>
#include <stdio.h>

int main(void)
{
   HRESULT hr;
   char url[] = "http://www.cualquierweb.com/lib.txt";
   char local[] = "C:\\rirTemp\\Readme.txt";

   hr = URLDownloadToFile(NULL, url, local, 0, NULL);
   
   if (hr == S_OK){
      puts("Download OK");
      return EXIT_SUCCESS;
   }else {
      puts("There was an error");
      return EXIT_FAILURE;
   }
}
ERROR

`URLDownloadToFile' undeclared (first use this function)

Me falta un archivo que llevo 2 dias buscando en internet ( urlmon.lib )
Que agradeceria que me facilitase.

Aun que dudo que funcione aun teniendo esa libreria.
--------
Acabo de encontrar otra libreria mas grande pero la estoy porbando desde Dev C++ y no me rula.
[URL="http://www.example-code.com /vcpp/ftp_download.asp"]http://www.example-code.com /vcpp/ftp_download.asp[/URL]

--------
Gracias por cualquier ayuda de antemano.

Última edición por rimobio; 10/02/2010 a las 10:40
  #2 (permalink)  
Antiguo 14/02/2010, 06:28
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Descargar Archivos de un servidor c++

Busca en Google: liburlmon.a
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 14/02/2010, 06:34
 
Fecha de Ingreso: diciembre-2007
Ubicación: Valencia
Mensajes: 92
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Descargar Archivos de un servidor c++

Cita:
Iniciado por Eternal Idol Ver Mensaje
Busca en Google: liburlmon.a
Eso es lo que he hecho... y bueno no lo he encontrado pero mas o menos lo he solucionado de otro modo.... mas cutre xDD

Que la alicación este en el servidor directamente...jej.
  #4 (permalink)  
Antiguo 14/02/2010, 06:52
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Descargar Archivos de un servidor c++

Tambien podes usar LoadLibrary + GetProcAddress y no enlazar estaticamente.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 14/02/2010, 07:02
 
Fecha de Ingreso: diciembre-2007
Ubicación: Valencia
Mensajes: 92
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Descargar Archivos de un servidor c++

Cita:
Iniciado por Eternal Idol Ver Mensaje
Tambien podes usar LoadLibrary + GetProcAddress y no enlazar estaticamente.

Gracias d antemano por contestar mi post ...

He busca informacion sobre lo que mas citado anteriormente...

Sobre los dos procedimiento que me has dicho he leeido que estan dentro d #include <windows.h>

[URL="http://msdn.microsoft.com/en-us/library/64tkc9y5%28VS.71%29.aspx"]
http://msdn.microsoft.com/en-us/library/64tkc9y5%28VS.71%29.aspx[/URL]

[URL="http://www.forosdelweb.com/f96/ayudita-con-loadlibrary-483725/"]http://www.forosdelweb.com/f96/ayudita-con-loadlibrary-483725/[/URL]


Exactamente no se que funcionamiento tiene cada uno d ellos, ya que segun lo que he entendido LoadLibrary() es por asi decirlo un procedimiento de carga de dll o librerias
y por otro lado tenemos el GetProcAddress(); su funcion es "obtain the address of an exported function in the DLL. "

Podrias citarme exactamente que deberia intentar con los procedimientos que me has citado.

Gracias nuevamente...
  #6 (permalink)  
Antiguo 14/02/2010, 08:58
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Descargar Archivos de un servidor c++

Código:
HMODULE hUrlMon = LoadLibrary("UrlMon.dll");
if (hUrlMon)
{
  typedef HRESULT (__stdcall *URLDownloadToFile_ptr)(LPUNKNOWN pCaller, LPCTSTR szURL, LPCTSTR szFileName, DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB);
  URLDownloadToFile_ptr URLDownloadToFile_fn = (URLDownloadToFile_ptr)GetProcAddress(hUrlMon, "URLDownloadToFileA"); 
  hr = URLDownloadToFile_fn(NULL, url, local, 0, NULL);
}
Con LoadLibrary cargas la libreria (UrlMon.dll en este caso) y con GetProcAddress obtenes la direccion en memoria de la funcion que queres (URLDownloadToFileA en este caso; las funciones de Windows que aceptan cadenas se dividen en A - ANSI - y W - wide char, Unicode -, aca use ANSI debido a que tu codigo asi lo hacia con url y local). Como podes ver para trabajar con punteros a funciones tenes que hacer el casting correspondiente para especificar el tipo de convencion de llamada (stdcall para casi todas las funciones de Windows, excepto las que reciben un numero de parametros variable que es C y alguna que otra excepcion tal vez), cada parametro con su tipo y el tipo de retorno.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO

Etiquetas: servidores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:07.