Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-04-2009
yelian yelian is offline
No confirmado
 
Registrado: nov 2007
Ubicación: Cuba
Posts: 81
Poder: 0
yelian Va por buen camino
Exclamation Descargar Archivos de Internet con C++

Hola a todos los del Foros,

Quisiera que me ayudaran con una duda que tengo en una aplicación que estoy haciendo para descargar archivos de Internet,

La idea que tengo para mi aplicación es que me descargue un archivo de Internet Diario (es la actualización de mi antivirus -Kaspersky-)

E logrado descargar el archivo de Internet con este código.

Code:

//Poniendo el Contenido del Edit1 en una Variable Char
int tam=Edit1->Text.Length();
char* Url_Down=new char[tam+1];
strcpy (Url_Down,Edit1->Text.c_str());
//Poniendo el Contenido del Edit2 en otra Variable Char
int tam2=Edit2->Text.Length();
char* Dir_Guard=new char[tam2+1];
strcpy (Dir_Guard,Edit2->Text.c_str());
//Descargando la URL puesto en el Edit1 y guardando lo en el Directorio del Edit2
HRESULT hr = URLDownloadToFile(0,Url_Down,Dir_Guard, 0, 0);
//Mostrando mensages de descarga
if (hr == S_OK) ShowMessage("Se a Terminado la Descargado Correctamente");
else ShowMessage("A Ocurrido un Error en la Descarga");

-En el Edit1 se pone la direccion del Archivo o Pagina a descargar.
-En el Edit2 se pone la ruta y el nombre con el que quiero descargar mi archivo o Pagina.

-Pero tengo algunas dudas sobre ese código como el puede ten conexión a Internet si no tiene identificado ningún proxy,
-A otra cosa cuando me empieza a descargar me pone la maquina lentísima y no puedo hacer nada en la aplicación por que se bloquea pero sigue descargando cuando termina de descargara es que se desbloquea el programa y se quita la lentitud de la PC.

Me gustaria que me ayudara a optimizar mi aplicacion, quisiera poder incluirle un Proxy + Pueto_Usuario + Contraseña para que la apalicacion tenga su propia conexión a Internet por que creo que este codigo se conecta a Internet mediante la configuarion de mi navegador (Supongo yo).

Gracias a todos de antemano...

[Saludos]...
Responder Con Cita
  #2  
Antiguo 14-04-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Hola de nuevo, yelian.

Si tu programa parece "colgado" durante la descarga, quizás deberías pensar en colocar tu código de descarga en un hilo a parte. Otra posibilidad sería establecer un IBindStatusCallback y colocar Application->ProcessMessages(); en el evento OnProgress.

Para el problema del proxy, debes realizar una autentificación previa a la descarga. Te dejo un ejemplo:
Código:
//---------------------------------------------------------------------------
bool Authenticate(HWND hWnd, char *URL)
{
   HINTERNET hOpenHandle,  hConnectHandle, hResourceHandle;
   DWORD dwError, dwErrorCode;
   char c;
   URL_COMPONENTS URL_C = {sizeof(URL_COMPONENTS)};
   URL_C.lpszScheme = &c;
   URL_C.dwSchemeLength = 1;
   URL_C.lpszHostName = &c;
//   URL_C.dwHostNameLength = 0;
   URL_C.lpszUserName  = &c;
//   URL_C.dwUserNameLength = 0;
   URL_C.lpszPassword = &c;
//   URL_C.dwPasswordLength = 0;
   URL_C.lpszUrlPath = &c;
//   URL_C.dwUrlPathLength = 0;
   URL_C.lpszExtraInfo = &c;
//   URL_C.dwExtraInfoLength = 0;

   InternetCrackUrl(URL, strlen(URL), ICU_DECODE, &URL_C);

   URL_C.lpszScheme = new char[URL_C.dwSchemeLength];
   URL_C.lpszHostName = new char[URL_C.dwHostNameLength];
   URL_C.lpszUserName  = new char[URL_C.dwUserNameLength];
   URL_C.lpszPassword = new char[URL_C.dwPasswordLength];
   URL_C.lpszUrlPath = new char[URL_C.dwUrlPathLength];
   URL_C.lpszExtraInfo = new char[URL_C.dwExtraInfoLength];

   InternetCrackUrl(URL, strlen(URL), ICU_DECODE, &URL_C);

   hOpenHandle = InternetOpen("Agent", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);

   hConnectHandle = InternetConnect(hOpenHandle,
                                 URL_C.lpszHostName,
                                 INTERNET_INVALID_PORT_NUMBER,
                                 NULL,
                                 NULL,
                                 INTERNET_SERVICE_HTTP,
                                 0,0);

   hResourceHandle = HttpOpenRequest(hConnectHandle, "GET",
                                  URL_C.lpszUrlPath,
                                  NULL, NULL, NULL,
                                  INTERNET_FLAG_KEEP_CONNECTION, 0);

   delete URL_C.lpszScheme;
   delete URL_C.lpszHostName;
   delete URL_C.lpszUserName;
   delete URL_C.lpszPassword;
   delete URL_C.lpszUrlPath;
   delete URL_C.lpszExtraInfo;
   
   for(int n=0; n<2; n++){
      HttpSendRequest(hResourceHandle, NULL, 0, NULL, 0);
      dwErrorCode = hResourceHandle ? ERROR_SUCCESS : GetLastError();
      dwError = InternetErrorDlg(hWnd, hResourceHandle, dwErrorCode,
                           FLAGS_ERROR_UI_FILTER_FOR_ERRORS |
                           FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS |
                           FLAGS_ERROR_UI_FLAGS_GENERATE_DATA,
                           NULL);
      if (dwError != ERROR_INTERNET_FORCE_RETRY)
        break;
   }
   return (dwError != ERROR_INTERNET_FORCE_RETRY);}
Y como usarlo en una descarga:

Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    char File[] = "http://www.terawiki.clubdelphi.com/CPPBuilderWin32/Ejemplos/?download=Otro+Usuario.rar";
    HRESULT R;

    Authenticate(Handle, File);
    R = URLDownloadToFile(0, File, "C:\\File.rar", 0, 0);
}
Saludos.

PD He optimizado un poco el código.

Última edición por escafandra fecha: 15-04-2009 a las 18:50:59. Razón: Optimización de código
Responder Con Cita
  #3  
Antiguo 22-04-2009
yelian yelian is offline
No confirmado
 
Registrado: nov 2007
Ubicación: Cuba
Posts: 81
Poder: 0
yelian Va por buen camino
escafandra muchas Gracias por el codigo anterior, pero tengo un problema con el codigo, cuando lo voy a utilizar me saltan una serie de errores que no me dejan compilar el codigo y no estoy seguro de por que es.

ERRORES:
---------
-Unresolved external 'InternetCrackUrlA' referenced from (Ruta de la Aplicacion)
-Unresolved external 'InternetOpenA' referenced from (Ruta de la Aplicacion)
-Unresolved external 'InternetConnectA' referenced from (Ruta de la Aplicacion)
-......
-......

Entre otros mas,
Creo que es porque tengo que declarar esas funciones que esta utilizando el codigo en la parte PRIVATE no .
Si alguien me pudiera aclar la duda se lo agradeseria...

[Saludos]...
Responder Con Cita
  #4  
Antiguo 22-04-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Debes incluir la librería Wininet.lib y Urlmon.lib bien en tu proyecto o bien mediante pragma.

Código:
#pragma link "$(BCB)\\lib\\PSDK\\Urlmon.lib"
#pragma link "$(BCB)\\lib\\PSDK\\Wininet.lib"
Saludos.
Responder Con Cita
  #5  
Antiguo 04-05-2010
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Duda

Hola
Este codigo fue posteado por escafandra respondiendole a Yelian en este hilo al probarlo me surgen las siguientes dudas
1- Donde pongo la primera parte del codigo ???
2- Al correr el programa me devuelve los siguientes errores

[C++ Error] Unit1.cpp(89): E2268 Call to undefined function 'URLDownloadToFile'
[C++ Warning] Unit1.cpp(90): W8004 'R' is assigned a value that is never used

A continuacion les pongo el codigo

Primera parte esta es la que no me queda clara dodne ponerlo, por lo tanto lo puse debajo de los #include
Código:
//---------------------------------------------------------------------------
bool Authenticate(HWND hWnd, char *URL)
{
   HINTERNET hOpenHandle,  hConnectHandle, hResourceHandle;
   DWORD dwError, dwErrorCode;
   char c;
   URL_COMPONENTS URL_C = {sizeof(URL_COMPONENTS)};
   URL_C.lpszScheme = &c;
   URL_C.dwSchemeLength = 1;
   URL_C.lpszHostName = &c;
//   URL_C.dwHostNameLength = 0;
   URL_C.lpszUserName  = &c;
//   URL_C.dwUserNameLength = 0;
   URL_C.lpszPassword = &c;
//   URL_C.dwPasswordLength = 0;
   URL_C.lpszUrlPath = &c;
//   URL_C.dwUrlPathLength = 0;
   URL_C.lpszExtraInfo = &c;
//   URL_C.dwExtraInfoLength = 0;

   InternetCrackUrl(URL, strlen(URL), ICU_DECODE, &URL_C);

   URL_C.lpszScheme = new char[URL_C.dwSchemeLength];
   URL_C.lpszHostName = new char[URL_C.dwHostNameLength];
   URL_C.lpszUserName  = new char[URL_C.dwUserNameLength];
   URL_C.lpszPassword = new char[URL_C.dwPasswordLength];
   URL_C.lpszUrlPath = new char[URL_C.dwUrlPathLength];
   URL_C.lpszExtraInfo = new char[URL_C.dwExtraInfoLength];

   InternetCrackUrl(URL, strlen(URL), ICU_DECODE, &URL_C);

   hOpenHandle = InternetOpen("Agent", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);

   hConnectHandle = InternetConnect(hOpenHandle,
                                 URL_C.lpszHostName,
                                 INTERNET_INVALID_PORT_NUMBER,
                                 NULL,
                                 NULL,
                                 INTERNET_SERVICE_HTTP,
                                 0,0);

   hResourceHandle = HttpOpenRequest(hConnectHandle, "GET",
                                  URL_C.lpszUrlPath,
                                  NULL, NULL, NULL,
                                  INTERNET_FLAG_KEEP_CONNECTION, 0);

   delete URL_C.lpszScheme;
   delete URL_C.lpszHostName;
   delete URL_C.lpszUserName;
   delete URL_C.lpszPassword;
   delete URL_C.lpszUrlPath;
   delete URL_C.lpszExtraInfo;
   
   for(int n=0; n<2; n++){
      HttpSendRequest(hResourceHandle, NULL, 0, NULL, 0);
      dwErrorCode = hResourceHandle ? ERROR_SUCCESS : GetLastError();
      dwError = InternetErrorDlg(hWnd, hResourceHandle, dwErrorCode,
                           FLAGS_ERROR_UI_FILTER_FOR_ERRORS |
                           FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS |
                           FLAGS_ERROR_UI_FLAGS_GENERATE_DATA,
                           NULL);
      if (dwError != ERROR_INTERNET_FORCE_RETRY)
        break;
   }
   return (dwError != ERROR_INTERNET_FORCE_RETRY);}
Segunda parte esto va en el boton y los errores que me devuelve son de aqui

Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    char File[] = "http://www.terawiki.clubdelphi.com/CPPBuilderWin32/Ejemplos/?download=Otro+Usuario.rar";
    HRESULT R;

    Authenticate(Handle, File);
    R = URLDownloadToFile(0, File, "C:\\File.rar", 0, 0);
}
tercera parte estas son las librerias a incluir

Código:
#pragma link "$(BCB)\\lib\\PSDK\\Urlmon.lib"
#pragma link "$(BCB)\\lib\\PSDK\\Wininet.lib"
Espero me puedan explicar un poco !!!
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #6  
Antiguo 04-05-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Lo correcto es que expreses tus dudas en el hilo al que haces referencia. Además, "Duda" no es un título adecuado para un hilo.

// Saludos
Responder Con Cita
  #7  
Antiguo 04-05-2010
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
es cierto, mis dusculpas, ahora como lo arreglo ????????? como puedo ponerlo de vuelta a donde pertenece y como elimino este hilo de aki
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #8  
Antiguo 04-05-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ya está
Responder Con Cita
  #9  
Antiguo 07-05-2010
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
No había visto que el hilo se revivía hasta ahora mismo.

Voy a tratar de aclarar las dudas surgidas:

1.- Para que la llamada a las APIs usadas funcionen se deben incluir las librerías Urlmon.lib y Wininet.lib en el proyecto. estas se encuentran en la carpeta donde está instalado el Builder C++ lib\PSDK\. o, si se prefiere, se pueden añadir las líneas de código expuestas al principio, dende los includes:
Código:
#pragma link "$(BCB)\\lib\\PSDK\\Urlmon.lib"
#pragma link "$(BCB)\\lib\\PSDK\\Wininet.lib"
2.- La función autenticate puede ponerse donde uno quiera, pero delante del código que la llame o si se prefiere se incluye su definición en un archivo.h que se incluya donde los includes.

3.- El código del botón está puesto así como ejemplo. realmente lo importante es hacer la llamada a Authenticate para autentificarse ante un proxy si existe, para luego llamar a la API URLDownloadToFile que es la que realiza la descarga.

Saludos.
Responder Con Cita
  #10  
Antiguo 07-05-2010
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Si, eso lo he entendido, pero aun me sigue dando el error, inclui las librerias de esa forma exactamente, puse el Authenticate en un .h y despues lo inclui. Pero aun asi me sigue diciendo lo siguiente

[C++ Error] Unit1.cpp(27): E2268 Call to undefined function 'URLDownloadToFile'
[C++ Warning] Unit1.cpp(30): W8004 'R' is assigned a value that is never used

si comento la linea
Código:
R = URLDownloadToFile(0, File, "C:\\File.rar", 0, 0);
y uso el autocompletamiento de codigo no me reconoce la funcion URLDownloadToFile, me parece que el problema esta en que no me esta incluyendo los .lib
tambien los copie hacia la carpeta donde tengo el proyecto y nada, que hago !!!!!!
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #11  
Antiguo 07-05-2010
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Tambien comente las lineas de los include a ver que pasaba y me devolvio el mismo error asi que el problema es que no se me estan incluyendo, conoces otra forma de incluirlas ???
Código:
//#pragma link "$(BCB)\\lib\\PSDK\\Urlmon.lib"
//#pragma link "$(BCB)\\lib\\PSDK\\Wininet.lib"
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #12  
Antiguo 07-05-2010
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
La definición de la API URLDownloadToFile se encuentra en Urlmon.h
Código:
#include "Urlmon.h"
Si tienes un error en el linker por las librerías Urlmon.lib y Wininet.lib, añádelas a tu proyecto.

Saludos.
Responder Con Cita
  #13  
Antiguo 07-05-2010
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Gracias por la solucion, funciona perfectamente, ahora solo me deja un WARNING diciendome que R es un valor que nunca se usa, pero de todas formas descarga bien.
Ahora una pequeña consulta mas, si no es molestia

1. Trate de usar un Edit para que se poueda poner la url sinembargo no puedo agregarselo, porque no reconoce al edit, lo que quciera saber si se puede hacer es algo como esto

Código:
char File[] = Edit1->Text;
y asi de paso puedo dividir el url del nombre del archivo usando otro edit y por ejemplo cuando descargo las actualizaciones del nod que son varias solo tengo que cambiar el nombre del fichero y no todo el url. De paso puedo definir el nombre del archivo tambien

Código:
R = URLDownloadToFile(0, File, "C:\\" + Edit2->Text, 0, 0);
Tambie podria hacer ciclos para efectuar descargas con nombres repetitivos etc.
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #14  
Antiguo 07-05-2010
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por lmpadron Ver Mensaje
...Trate de usar un Edit para que se poueda poner la url sinembargo no puedo agregarselo, porque no reconoce al edit, lo que quciera saber si se puede hacer es algo como esto

Código:
char File[] = Edit1->Text;
Eso se debe a que las VCL y el TEdit forma parte de ellas, usan un tipo de cadena que no es del tipo char* cadena, sino String estilo Pascal. Para podes usar las API de windows tenemos que convertirlas a tipo char* o PCHAR que es exactamente lo mismo. Asi la solución a tu nueva cuestión es esta:

Código:
char File[] = Edit1->Text.c_str();
Cita:
Empezado por lmpadron Ver Mensaje
... deja un WARNING diciendome que R es un valor que nunca se usa, pero de todas formas descarga bien.
Por otro lado, la alerta que te da es porque R es el resultado que devuelve la API URLDownloadToFile que es del tipo RESULT. Lo puse como ejemplo. Si no vamos a analizar el resultado despues de la llamada, no es necesario definir la variable ni usarla.

Saludos.
Responder Con Cita
  #15  
Antiguo 08-05-2010
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Código:
char File[] = Edit1->Text.c_str();
me devuelve este error

Código:
[C++ Error] Unit1.cpp(26): E2034 Cannot convert 'char *' to 'char[]'
alguna idea ??
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #16  
Antiguo 08-05-2010
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Código:
char* File = Edit1->Text.c_str();
Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Descargar un archivo de Internet c0lo Internet 10 14-05-2016 04:44:25
como descargar ficheros de internet jfadelphi Varios 3 04-03-2009 09:14:59
Descargar Archivos Deiv HTML, Javascript y otros 6 25-12-2007 08:52:55
Descargar fichero 25 Mb desde internet fmatias Internet 4 06-07-2007 17:43:59
Descargar imágenes de internet via http. alfredosg19 Internet 2 08-04-2005 13:02:27


La franja horaria es GMT +2. Ahora son las 19:46:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi