Nuevas NORMAS para el foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse. - Mayo 16, 2008, 08:35:57
Boton Buscar
Inicio Ayuda Calendario Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: excepción no controlada 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: excepción no controlada  (Leído 71 veces)
dueñas
Recien Llegado
*
Desconectado Desconectado

Mensajes: 7


Ver Perfil Email
« en: Abril 11, 2008, 03:54:31 »

Hola.  He hecho en c++ (visual studio 2005) un programa cuyas funciones provienen de una dll.  En tiempo de ejecución me da este error:

"Excepción no controlada en 0x00000000 en refdll.exe : 0x00000005 : Infracción de acceso al leer la ubicación 0x00000000"

Si alguien sabe a qué se puede deber esto, le agradezco mucho su comentario.

Bye.
En línea
~[L]~
Miembro
*****
Desconectado Desconectado

Mensajes: 73


lerp -> ((1-weight).a+weight.b)

lawlieth.elle@gmail.com
Ver Perfil WWW
« Respuesta #1 en: Abril 11, 2008, 07:50:30 »

DEBERIAS USAR el debugger, pero, esto lo dice todo :

Citar
nfracción de acceso al leer la ubicación 0x00000000

significa que un puntero apunta a 0 o null, NULLPOINTER EXCEPTION, fijate usando el debugger donde es la excepcion xP

Sayonara^^
En línea

dueñas
Recien Llegado
*
Desconectado Desconectado

Mensajes: 7


Ver Perfil Email
« Respuesta #2 en: Abril 15, 2008, 05:07:57 »

Hola, y muchísimas gracias por responder.

He encontrado la excepción en la llamada de un procedimiento que utiliza como parámetro de entrada la dirección de un puntero, así que posiblemente sea como me has dicho, y es un puntero que no tengo inicializado.

De todos modos, aunque solo sea para descartar, ¿no puede deberse este error a que el fichero dll esté mal?  es que el dll también lo he hecho yo, y no tengo la certeza de que funcione bien.

Muchas gracias de nuevo.

Bye.
En línea
~[L]~
Miembro
*****
Desconectado Desconectado

Mensajes: 73


lerp -> ((1-weight).a+weight.b)

lawlieth.elle@gmail.com
Ver Perfil WWW
« Respuesta #3 en: Abril 16, 2008, 04:11:27 »

Hola, y muchísimas gracias por responder.

He encontrado la excepción en la llamada de un procedimiento que utiliza como parámetro de entrada la dirección de un puntero, así que posiblemente sea como me has dicho, y es un puntero que no tengo inicializado.

De todos modos, aunque solo sea para descartar, ¿no puede deberse este error a que el fichero dll esté mal?  es que el dll también lo he hecho yo, y no tengo la certeza de que funcione bien.

Muchas gracias de nuevo.

Bye.

No inicializado o que ya se liberó..

Citar
refdll.exe

es un .exe, ahora si decís que es un exe que llama a la dll, no debería haber problemas, ahora, una pregunta..

La dll, ¿ la usas cargandola como modulo y obteniendo funciones a medida que necesites o usas dynamic link? (o sea, un .lib que referencie los símbolos a la dll)

Otro tema es que puede que la dll esté mal, pero puede que no, usa el debugger de tu IDE, fijate, deberia apuntar a donde está dando esa excepción y podría decirte cual es el problema y sabrías si es de la dll o no, pero sino, no sé, es muy en el aire esto =S


Sayonara^^
En línea

dueñas
Recien Llegado
*
Desconectado Desconectado

Mensajes: 7


Ver Perfil Email
« Respuesta #4 en: Abril 17, 2008, 05:14:43 »

Hola

Las funciones que uso se obtienen de la dll, sin el uso de ningun .lib.

Miraré con el debugger a ver que tal, pero es verdad que está muy en el aire, es por eso por lo que tengo tantas dudas de como solucionarlo.

Muchas gracias, un saludo.
En línea
~[L]~
Miembro
*****
Desconectado Desconectado

Mensajes: 73


lerp -> ((1-weight).a+weight.b)

lawlieth.elle@gmail.com
Ver Perfil WWW
« Respuesta #5 en: Abril 17, 2008, 08:44:05 »

Hola

Las funciones que uso se obtienen de la dll, sin el uso de ningun .lib.

Miraré con el debugger a ver que tal, pero es verdad que está muy en el aire, es por eso por lo que tengo tantas dudas de como solucionarlo.

Muchas gracias, un saludo.


No, no es muy en el aire, es la poca informacion que tengo para deducir lo que pasa xD

Usá el debugger del Visual Studio, Links :


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion

Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion

Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion

Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion

Sayonara^^
En línea

dueñas
Recien Llegado
*
Desconectado Desconectado

Mensajes: 7


Ver Perfil Email
« Respuesta #6 en: Abril 18, 2008, 02:06:27 »

Sí, la verdad es que apenas te he dado datos del problema, pero por eso no te preocupes.  La situación es que desde el código que vendrá a continuación, hago referencia a las funciones contenidas en una dll que he hecho previamente.  Al utilizar el debugger, el mensaje de error por el que tengo las dudas aparece justo en la llamada de la primera función, donde viene marcado, pero hay que tener en cuenta que aunque quite esa función y haga referencia a cualquier otra, me aparece la misma excepción.  El código que utiliza las funciones de la dll se llama refdinamic.cpp, y es el siguiente:
//Programa con el que probaremos la biblioteca dinámica dll.

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
   HANDLE   ComDev;
   char *   pInterfaceName = "COM1";
   char *   pReadPMAddress = NULL;
   char *   pReadEEAddress = NULL;
   char *   pBaudRate      = "115200";
   FILE *   pFile          = NULL;
   eFamily  Family;
   char Buffer[BUFFER_SIZE];
   HINSTANCE hDll;

   typedef eFamily (CALLBACK* LPFNDLLFUNC1)(HANDLE);
   typedef int (CALLBACK* LPFNDLLFUNC2)(HANDLE, char*, char*, eFamily);
   typedef int (CALLBACK* LPFNDLLFUNC3)(HANDLE, char*, char*, eFamily);
   typedef int (CALLBACK* LPFNDLLFUNC4)(HANDLE, FILE*, eFamily);
   typedef HANDLE (CALLBACK* LPFNDLLFUNC5)(HANDLE, char*, char*); //
   typedef BOOL (CALLBACK* LPFNDLLFUNC6) (HANDLE); //

    // Functions pointer
   LPFNDLLFUNC1 ReadID;
   LPFNDLLFUNC2 ReadPM;
   LPFNDLLFUNC3 ReadEE;
   LPFNDLLFUNC4 SendHexFile;
   LPFNDLLFUNC5 OpenConnection; //
   LPFNDLLFUNC6 CloseConnection; //

   // carga de librería.
   hDll = LoadLibrary("lSendHexFile.dll");
   ReadID = (LPFNDLLFUNC1) GetProcAddress(hDll, "ReadID");
                ReadPM = (LPFNDLLFUNC2) GetProcAddress(hDll, "ReadPM");
                ReadEE = (LPFNDLLFUNC3) GetProcAddress(hDll, "ReadEE");
                SendHexFile = (LPFNDLLFUNC4) GetProcAddress(hDll, "SendHexFile");
   OpenConnection = (LPFNDLLFUNC5) GetProcAddress (hDll, "OpenConnection"); //
   CloseConnection = (LPFNDLLFUNC6) GetProcAddress (hDll, "CloseConnection"); //
//EN LA SIGUIENTE LLAMADA APARECE LA EXCEPCIÓN.
   if (OpenConnection(&ComDev, pInterfaceName, pBaudRate) == NULL){       return -1; //excepción
   }else{

//   Read Device ID
//      Family = dsPIC30F; // Tenemos que inicializar Family para que no nos de la excepción.
      Family = ReadID(&ComDev);

//   Process Read PM request and exit
      if(pReadPMAddress != NULL)
      {
         ReadPM(&ComDev, Buffer, pReadPMAddress, Family);
         return 0;
      }

//   Process Read EEPROM request and exit
      if(pReadEEAddress != NULL)
      {
         ReadEE(&ComDev, Buffer, pReadEEAddress, Family);
         return 0;
      }
       return 0;

// Read Hex file and transfer it to target
      SendHexFile(&ComDev, pFile, Family);

      CloseConnection(&ComDev); //
   }
    // descargar librería
   FreeLibrary(hDll);
   system("PAUSE");
   return EXIT_SUCCESS;
}

Como habrás podido ver, la dll a la que se refiere es lSendHexFile.dll, que es donde se encuentran todas las funciones a las que se refiere el código.

No sé que mas decir, pero este error me ha dejado bloqueado, no lo había visto antes, y me he quedado totalmente estancado con el proyecto por culpa de esto.

Muchísimas gracias de nuevo.  Un saludo.
En línea
Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: excepción no controlada « anterior próximo »
Ir a:  
Novedades, Dudas, Comentarios Y Sugerencias, Top 100, Off-Topic, Revista E-Zine, Revista E-Zine, Sistemas operativos libres. , HacK GeneraL, Phreaking, Bug y Exploits, Networking & Wireless, Overclocking, Refrigeracion y demas, Hardware, Electronica Y Robotica, Hack para newbies, Todo Messenger, Troyanos y virus, Programacion, Programacion para webmasters, Software, Cracks & Serialz, P2p, Bittorrent, Elinks, Diseño Grafico, Juegos PC, Mp3, Multimedia, Peliculas Divx, Juegos, Humor y Adultos. (Diversion), Paginas Webs Recomendadas, Videos,


Zona-Musical Juegos online Juego Gratis10 Solucion Hosting Videos De Musica 1juegogratis Dragonjar
Noticias
 Juegos De Coche juegos gratis online juegos Los Foros De Sexe Gratuit Sexo Duro Tierra Messenger Trucos
Ranking-Hits
Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC