Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: class_OpenGL en 19 Diciembre 2015, 16:58 pm



Título: std::ofstream::close crashea sin explicación aparente
Publicado por: class_OpenGL en 19 Diciembre 2015, 16:58 pm
Hola, muy buenas a tod@s. El problema que tengo es que al intentar cerrar un archivo de un programa que estoy creando, la función que realiza eso crashea el programa.

El código es
Código
  1. cPath.append(".bmp");
  2. cFilteredImage.open(cPath,
  3.                    std::ios_base::out | std::ios_base::trunc | std::ios_base::binary);
  4. if(cFilteredImage.is_open() == true) {
  5.        cFilteredImage.write(lpbyHeader, 54);
  6.  
  7.        for(unsigned int i = 0; i < stBmpData.uDataSize; i += stBmpData.uBitsPerPixel/8) {
  8.                fVectorLength = calculateLength(&(stBmpData.lpbyData[i]));
  9.  
  10.                if(fVectorLength <= 100.0)
  11.                        lpbyImageData[i/3] = true;
  12.                else
  13.                        lpbyImageData[i/3] = false;
  14.  
  15.                if(lpbyImageData[i/3] == true)
  16.                        cFilteredImage.write("\xFF\xFF\xFF", 3);
  17.                else
  18.                        cFilteredImage.write("\x00\x00\x00", 3);
  19.        }
  20.  
  21.        cFilteredImage.close();
  22. }

A lo mejor la respuesta es obvia, pero no la veo :P Gracias por prestar atención

PD.: El archivo se escribe correctamente. El problema es al cerrarlo


Título: Re: std::ofstream::close crashea sin explicación aparente
Publicado por: ivancea96 en 19 Diciembre 2015, 19:44 pm
¿Qué código de error lanza?


Título: Re: std::ofstream::close crashea sin explicación aparente
Publicado por: class_OpenGL en 19 Diciembre 2015, 22:09 pm
No lanza ningún código de error. El problema es en tiempo de ejecución. El programa se cierra inesperadamente (un crash) cuando se intenta cerrar el archivo (al final de este código).


Título: Re: std::ofstream::close crashea sin explicación aparente
Publicado por: ivancea96 en 19 Diciembre 2015, 22:12 pm
Depúralo, y sacarás un código de error.
Puedes usar cualquier debugguer q suelas usar.


Título: Re: std::ofstream::close crashea sin explicación aparente
Publicado por: class_OpenGL en 19 Diciembre 2015, 22:54 pm
Al final lo que he hecho es rehacer el código y ha resultado. Llevo tanto con esto que no tengo ganas de comprobar que era. Siento la intriga xD