Visual Studio excepcion al depurar

Haz aquí tus consultas relacionadas con la programación gráfica.
Responder
Mensaje
Autor
Kurutta
Mensajes: 2
Registrado: 05/05/2018 4:17 pm

Visual Studio excepcion al depurar

#1 Mensaje por Kurutta » 05/05/2018 4:40 pm

¿hola gente como están?, e tenido unos problemas desde hace unos días (1 semana :´( )y es que cada ves que depuro (visual studio 2017-win 7- 32 bits- sistema: consola) todo va normal a la hora de depurar y ejecutar el programa, pero después de que termina el programa me sale el siguiente error:

Excepción producida en 0x7772EBCB (ntdll.dll) en Project1.exe: 0xC0000005: Infracción de acceso al escribir en la ubicación 0x00000014. ocurrió.

instale la librería SDL (1.2.15) y la verdad no se que pueda causarlo aquí esta el código de prueba

PD: no me deja finalizar el programa normalmente (oprimiendo una tecla) tengo que detener la depuración... (Gracias de antemano)

Código: Seleccionar todo

#include <SDL.h>
# include <iostream>
#include <stdlib.h>

using namespace std;


FILE _iob[] = { *stdin, *stdout, *stderr };

extern "C" FILE * __cdecl __iob_func(void)
{
return _iob;
}

int main(int argc, char* argv[]) {



if (SDL_Init(SDL_INIT_EVERYTHING) < 0) {

cout << "no podemos inicializar" << SDL_GetError() << endl;
system("pause");

}

else {

cout << "inicio correctamente" << endl;

system("pause");

}

SDL_Quit();


return 0;

}
EDITADO: El código debe ir entre etiquetas 'code', botón </>
MODERADOR: mollok

mollok
Mensajes: 327
Registrado: 30/01/2018 9:47 am
Ubicación: Mallorca, España

Re: Visual Studio excepcion al depurar

#2 Mensaje por mollok » 05/05/2018 11:27 pm

De primero he visto que haces declaras tres estructuras FILE cuando deberías usar punteros.

Código: Seleccionar todo

FILE * _iob[] = { stdin, stdout, stderr };
Aún así, y ya que usas C++, usa las clases *stream para crear los ficheros.

Más digo: todo lo referente a _iob, tanto la estructura como la función, sobra en ese código.

Aparte los headers de la estándar de C++ empiezan con c y no usan .h, es decir:

Código: Seleccionar todo

#include <cstdlib>
while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}

Kurutta
Mensajes: 2
Registrado: 05/05/2018 4:17 pm

Re: Visual Studio excepcion al depurar

#3 Mensaje por Kurutta » 06/05/2018 8:08 am

mollok escribió:
05/05/2018 11:27 pm
De primero he visto que haces declaras tres estructuras FILE cuando deberías usar punteros.

Código: Seleccionar todo

FILE * _iob[] = { stdin, stdout, stderr };
Aún así, y ya que usas C++, usa las clases *stream para crear los ficheros.

Más digo: todo lo referente a _iob, tanto la estructura como la función, sobra en ese código.

Aparte los headers de la estándar de C++ empiezan con c y no usan .h, es decir:

Código: Seleccionar todo

#include <cstdlib>

Primero muchas gracias por tu repuesta :D .

bueno lo de las estructuras file es por que me salia un error de _iob__imp_ al copilar(si sabes como quitarlo sin nesecidad de las struct file te lo agradeceria)

el header así lo estudie... soy autodidacta así que nunca se si consigo info correcta gracias por eso.

por ultimo tu respuesta no responde a mi pregunta :( a un si gracias...

mollok
Mensajes: 327
Registrado: 30/01/2018 9:47 am
Ubicación: Mallorca, España

Re: Visual Studio excepcion al depurar

#4 Mensaje por mollok » 06/05/2018 12:29 pm

Se me escapan los dos errores. Uso GCC y no he utilizado nunca SDL en Windows.
while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}

Avatar de Usuario
untio
Mensajes: 384
Registrado: 17/09/2008 9:35 am
Ubicación: MICA S.A.
Contactar:

Re: Visual Studio excepcion al depurar

#5 Mensaje por untio » 17/09/2018 1:08 pm

Hola y perdonad que me entrometa,

Yo estoy casi convencido del todo de que el error que ocurre en este ejecutable es debido a que está enlazando su programa contra alguna librería que no ha sido compilada con el mismo compilador con el que lo está escribiendo.

En el código hay un pequeño error, que es que pone el sdlquit de modo que se ejecuta tanto si sdl se inicia como si no.

Lo mejor es decargar el código y compilar la dll uno mismo. Por eso hay muchas librerías que se distribuyen sólo como código fuente.

De nada.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados