Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/02/2010, 08:58
Avatar de Eternal Idol
Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 7 meses
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