Problema con aplicación de visual studio

Tengo un problema que necesito solucionar lo antes posible, pero no sé cómo y espero que pueda ayudarme.
He desarrollado una aplicación con visual studio 2005, en c++ y haciendo uso de qt 4 y de qglviewer, que funciona perfectamente desde la interfaz que me presenta visual studio. Pero, cuando ejecuto el .exe desde la carpeta release donde me lo pone el visual studio, la aplicación se abre, aparentemente sin problemas, pero al darle a que empiece a hacer lo que tiene que hacer con algunas de las opciones que le he puesto, me salta el siguiente fallo:
Mi programa.exe ha detectado un problema y debe cerrarse
Cuando le pido información del error, me da la siguiente información:
AppName: miprograma.exe AppVer:0.0.0.0 ModName: ntdll.dll
ModVer:5.1.2600.2180 Offset: 00011639
Estoy desesperada y no sé cómo solucionarlo, ya que luego, al crear el instalador, tengo que usar este .exe y, por lo tanto, cuando lo instalo en otro ordenador me salta el mismo problema. ¿Alguna idea de qué puede estar pasando? He probado ya de todo, pero no sé si el problema está en mi aplicación o en el módulo ntdll.dll. Si en mi programa quito la parte de reservar memoria, el problema desaparece, pero lo que yo estoy haciendo no es nada raro, simplemente reservo memoria con la función malloc, y el programa no da absolutamente ningún error cuando ejecuto desde visual studio.
¿Tiene idea de qué puede estar pasando y de cómo solucionarlo? Cualquier información adicional que necesite se la daré en cuanto me la pida.
Gracias por cualquier ayuda que pueda prestarme y un saludo.

1 Respuesta

Respuesta
1
Es importante que determines el código de error o al menos la descripción de este. En base a eso puedes ir invertigando donde esta el error.
Por una parte, es posible que sea un detalle de código, generalmente error nro 5: Error de Acceso a memoria, esto indica que estas accediendo una dimension de un array que esta definido de menor tamaño, o una variable entera que la quieres accesar como Long, etc.
También existe otra posibilidad, y es el el basuramiento de versiones de dlls de windows. Para descartar esto, en ultima instancia lo más recomendable es reinstalar el WIN y el VS2005. No instales más aplicaciones. Ejecuta la compilación y prueba de nuevo la ejecución. Recalco que esta es una ultima instancia en caso de que creas que el código esta perfecto.
Muchas gracias por la ayuda. El problema estaba en el código, aunque no en la reserva de memoria con malloc, sino en un bucle for, donde estaba usando para recorrerlo una variable float. Al haber usado para la reserva de memoria sólo la parte entera del float, el bucle daba una vuelta más y el array que usaba se salía de su límite una posición. Por suerte, pude ver que el error estaba en el código y que no era culpa de la dll. Gracias de nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas