error grave en programa

Iniciado por winnipu, 9 Noviembre 2010, 22:48 PM

0 Miembros y 1 Visitante están viendo este tema.

winnipu

Vereis he hecho un programa que hace lo que se le pide, pero llegado un momento se cierra bruscamente y sale una pantalla de windows diciendo error grave el programa va a cerrarse. Os pego el codigo a ver si alguien sabe a que puede ser debido:

editado codigo no funcional

flony

no se si sirve per tiene dos errores
Citarpractica.cpp(16) : error C2664: 'InternetConnectW' : no se puede convertir el parámetro 2 de 'const char [22]' a 'LPCWSTR'
Los tipos señalados no están relacionados; la conversión requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función
y el otro
Citarpractica.cpp(17) : error C2664: 'FtpGetFileW' : no se puede convertir el parámetro 2 de 'const char [11]' a 'LPCWSTR'
Los tipos señalados no están relacionados; la conversión requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función
si un problema no tiene solucion entonces no es un problema...es algo inevitable

bizco

#2
http://foro.elhacker.net/programacion_cc/librospapers_cc-t296234.0.html

te respondo asi pq este hilo viene de aqui:

http://foro.elhacker.net/programacion_cc/ftp_en_c-t309507.0.html


Lo mismo que te conteste en ese hilo, es mala practica no verificar el resultado de las funciones y peor usar strcat,strcpy o similares sin verificar el tamaño del buffer.

Mr.Blue

#3
Flony, el primer error que citas es por los parametros de user y pass

En el segundo pasa igual RARCHIVO
Citar
lpszRemoteFile [in]

    Pointer to a null-terminated string that contains the name of the file to be retrieved.

http://msdn.microsoft.com/en-us/library/aa384157%28VS.85%29.aspx

winnipu

#4
Gracias a todos por responder. Creo haber seguido vuestros consejos dejando asi el code. Ahora ya no hace desbordamiento de buffer, pero en cambio ahora no baja el archivo, y antes aun haciendo el bof lo bajaba. Os pego code:

editado. Codigo no funcional.

bizco

te repito, continuas sin verificar que te retornan las funciones.

winnipu

las verifico a mano. No te molestes mas bizco, ya tengo el code que queria, plenamente funcional, portable, y sin buffer overflow. Ah, y por cierto, gracias por los libros que me recomendaste, ese post lamentablemente fue el primero que lei, antes de empezar con c++. Tengo muchos de esos libros descargados en mi pc, y llevo poco tiempo con c++. No programo bien por el poco tiempo que llevo (mes y pico). Perdona que no sepa usar ciertas funciones, que me lie con los arrays, que cometa desbordamientos de memoria, seguro que tu naciste aprendido, y la primera palabra que dijiste no fue ni papa ni mama sino printf "papa".

bizco

#7

Citar
No programo bien por el poco tiempo que llevo (mes y pico). Perdona que no sepa usar ciertas funciones, que me lie con los arrays, que cometa desbordamientos de memoria, seguro que tu naciste aprendido, y la primera palabra que dijiste no fue ni papa ni mama sino printf "papa".

Si no aceptas los consejos tu mismo. el primer post te di la solucion por privado cuando lo pediste y ahi te parecio bien, a los pocos dias vuelves con el mismo codigo y aun diciendote que no verificar el resultado es malo continuas igual y aun te preguntas pq falla el codigo.

Continua con tu metodo, que vas MUY MUUY bien. logicamente que no sabia recien nacido, PERO yo tenia y tengo bastante cabeza para saber que antes del 1 va el 2, lo primero aprender el lenguaje (y todo lo que conlleva) y luego meterse ya con "DOWNLOADERS" o sea lo que sea la herramienta super jaxor que estes programando (mendigando codigo).



Littlehorse

Aclarando algunas cosas:

@winnipu

1) Si un moderador te hace una edición en un mensaje para advertirte de una falta, no puedes editar esa advertencia y borrarla. Lo dejo pasar por esta vez, porque supongo no lo sabias, pero si a pesar de las advertencias para que no sigas haciendo doble posts, lo haces y encima me editas la advertencia, no me dejas alternativa que ante un hecho similar tenga que borrar el hilo directamente.

2) Si en un hilo no tienes la respuesta que necesitas, no haces uno nuevo posteando el mismo código. Si un usuario te facilita un código en base al tuyo y no lo entiendes, no haces un nuevo hilo preguntando sobre el, las preguntas las haces en el mismo hilo en el cual se te facilito el código.

3) Es de mal gusto editar los posts para borrar el contenido, sea cual fuese el motivo.

@bizco

Te edite un poco el mensaje, no porque no este de acuerdo con la idea que planteas si no porque hay que mantener las formas y sobre todo el vocabulario.

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