elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C++][?] Error en ReadConsole()
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [C++][?] Error en ReadConsole()  (Leído 4,774 veces)
Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: [C++][?] Error en ReadConsole()
« Respuesta #10 en: 19 Junio 2010, 21:09 pm »

Gracias, ya puse esto pero continua sin ir. Vamos a ver, voy a ponerlo con imágenes y todo para que me creáis de que pongo bien la ruta y todo:

Código
  1. #include <windows.h>
  2.  
  3. int main()
  4. {
  5.        HANDLE hHeap = GetProcessHeap();
  6.  
  7.        LPSTR lpBuffer = "Escribe la ruta del fichero: ";
  8.        WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), lpBuffer, lstrlen(lpBuffer), 0, 0);
  9.  
  10.        LPSTR lpFileName = (LPSTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, MAX_PATH);
  11.        DWORD nNumberOfCharsRead = 0;
  12. ReadConsole(GetStdHandle(STD_INPUT_HANDLE), lpFileName, MAX_PATH - 1, &nNumberOfCharsRead, 0);
  13.  
  14. HANDLE hFile = CreateFile(lpFileName, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
  15.  
  16. if(hFile == INVALID_HANDLE_VALUE)
  17. {
  18. MessageBox(0, "Error", "Error", 0);
  19.  
  20. lpFileName[lstrlen(lpFileName) - 2] = 0;
  21. }
  22.  
  23. else MessageBox(0, "Funciona", "Funciona", 0);
  24.  
  25. return 0;
  26. }

Escribo la ruta:



Y para comprobar que existe:



Luego no es culpa de la ruta :-\ :o

Saludos :P


« Última modificación: 31 Agosto 2010, 16:13 pm por Horricreu » En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: [C++][?] Error en ReadConsole()
« Respuesta #11 en: 19 Junio 2010, 21:14 pm »

 :D, revisa lo que has hecho:

Código
  1. if(hFile == INVALID_HANDLE_VALUE)//Si CreateFile me devuelve error porque la ruta esta mal
  2. {                                                      
  3.   MessageBox(0,"Error","Error",0); //Imprimo mensaje de error
  4.  
  5.   lpFileName[lstrlen(lpFileName) - 2] = 0;// Y ahora si arreglo la ruta
  6. }
  7. //Termina el programa

Luego la culpa es de CreateFile  ;D

Saludos!


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: [C++][?] Error en ReadConsole()
« Respuesta #12 en: 19 Junio 2010, 21:19 pm »

:D, revisa lo que has hecho:

Código
  1. if(hFile == INVALID_HANDLE_VALUE)//Si CreateFile me devuelve error porque la ruta esta mal
  2. {                                                      
  3.   MessageBox(0,"Error","Error",0); //Imprimo mensaje de error
  4.  
  5.   lpFileName[lstrlen(lpFileName) - 2] = 0;// Y ahora si arreglo la ruta
  6. }
  7. //Termina el programa

Luego la culpa es de CreateFile  ;D

Saludos!

Ya lo sé, pero los parámetros están bien :)

Saludos :P
En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: [C++][?] Error en ReadConsole()
« Respuesta #13 en: 19 Junio 2010, 21:23 pm »

No horricreu, no están bien. Vuelve a leer el hilo completo y analiza todo lo que te he dicho yo y todo lo que te ha dicho Eternal Idol. Estas intentando pasarle a CreateFile una ruta incorrecta y la finalizas correctamente solamente si CreateFile te da un error pero jamas vuelves a llamar a CreateFile nuevamente.

No seria mejor finalizar correctamente la cadena antes de llamar a CreateFile?

Saludos!
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: [C++][?] Error en ReadConsole()
« Respuesta #14 en: 19 Junio 2010, 21:38 pm »

No horricreu, no están bien. Vuelve a leer el hilo completo y analiza todo lo que te he dicho yo y todo lo que te ha dicho Eternal Idol. Estas intentando pasarle a CreateFile una ruta incorrecta y la finalizas correctamente solamente si CreateFile te da un error pero jamas vuelves a llamar a CreateFile nuevamente.

No seria mejor finalizar correctamente la cadena antes de llamar a CreateFile?

Saludos!


¡Ya está solucionado! Gracias Eternal Idol y Littlehorse por vuestra ayuda, he aprendido algo nuevo ;) :xD

Saludos :P

PD:

Código
  1. #include <windows.h>
  2.  
  3. int main()
  4. {
  5.        HANDLE hHeap = GetProcessHeap();
  6.  
  7.        LPSTR lpBuffer = "Escribe la ruta del fichero: ";
  8.        WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), lpBuffer, lstrlen(lpBuffer), 0, 0);
  9.  
  10.        LPSTR lpFileName = (LPSTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, MAX_PATH);
  11.        DWORD nNumberOfCharsRead = 0;
  12. ReadConsole(GetStdHandle(STD_INPUT_HANDLE), lpFileName, MAX_PATH - 1, &nNumberOfCharsRead, 0);
  13.  
  14.        lpFileName[lstrlen(lpFileName) - 2] = 0;
  15.  
  16. HANDLE hFile = CreateFile(lpFileName, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
  17.  
  18. if(hFile == INVALID_HANDLE_VALUE) MessageBox(0, "Error", "Error", 0);
  19.  
  20. else MessageBox(0, "Funciona", "Funciona", 0);
  21.  
  22. return 0;
  23. }
« Última modificación: 31 Agosto 2010, 16:14 pm por Horricreu » En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines