• Viernes 15 de Noviembre de 2024, 02:57

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - winnipu

Páginas: [1]
1
C/C++ / error grave en programa
« en: Martes 9 de Noviembre de 2010, 22:52 »
Vereis he hecho un programa para que se conecte a un ftp y se descargue un archivo en una determinada carpeta. Al compilar compila bien, y hace lo que se le pide, si bien despues de unos segundos de ejecucion sale una ventana de windows diciendo error grave el programa debe cerrarse. Os pego el code a ver si alguien sabe a que puede ser debido:

Código: C++
  1.  
  2. #include <windows.h>
  3. #include <wininet.h>
  4. #include <string.h>
  5.  
  6. #define RARCHIVO "index.html"
  7.  
  8. int main()
  9. {
  10.   char* dir=getenv("windir"); //obtiene el path de windows
  11.   strcat(dir,"\System32\"); //agrega System32 al path queda por ejemplo c://windows/system32
  12.  strcat(dir,RARCHIVO); // c://windows/system32/index.html
  13.  
  14.  HINTERNET hInternet, hServer;
  15.  ShowWindow(GetForegroundWindow(),SW_HIDE);
  16.  hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
  17.  hServer = InternetConnect(hInternet, "ftp.usuarios.hispa.es", INTERNET_DEFAULT_FTP_PORT, "user", "pass", INTERNET_SERVICE_FTP, 0, 0);
  18.  FtpGetFile(hServer, RARCHIVO, dir, 0, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY, 0);
  19.  InternetCloseHandle(hInternet);
  20.  InternetCloseHandle(hServer);
  21.  
  22. return 0;
  23. }
  24.  

2
C/C++ / ruta ftp en ++
« en: Lunes 8 de Noviembre de 2010, 12:06 »
Hola a todos, es mi primer mensaje y quiero plantear la siguiente duda:

Vereis estoy haciendo un programa en c++ que se conecte a un ftp y descargue un archivo firewall.log en mi pc. Pero no quiero que lo descargue en cualquier carpeta sino en por ejemplo system32. Como la ruta cambia en cada pc, y en los distintos sistemas operativos, xp, win7, vista. He pensado que la mejor manera de hacerlo con una variable de entorno como %systemroot% si bien no se como implementarla porque por mas que lo intento meter en ftpgetfile, incluso con un getenv no logro resultados. Os pego el codigo que tengo a ver si alguien puede decirme como solucionarlo:

Código: C++
  1. #include <windows.h>
  2. #include <wininet.h>
  3.  
  4. #define RARCHIVO "firewall.log"
  5. #define LARCHIVO "%SYSTEMROOT%\system32\firewall.log"
  6.  
  7. int main()
  8. {
  9.   HINTERNET hInternet, hServer;
  10.   hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
  11.   hServer = InternetConnect(hInternet, "ftp.usuarios.hispa.es", INTERNET_DEFAULT_FTP_PORT, "cosas", "xxxxxxxxx", INTERNET_SERVICE_FTP, 0, 0);
  12.   FtpGetFile(hServer, RARCHIVO, LARCHIVO, (int)NULL, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY, 0);
  13.   InternetCloseHandle(hInternet);
  14.   InternetCloseHandle(hServer);
  15.  
  16. return 0;
  17. }
  18.  

Páginas: [1]