Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Error: Illegal fid --- Ayuda!!!

Estas en el tema de Error: Illegal fid --- Ayuda!!! en el foro de C/C++ en Foros del Web. Hola, Estoy desarrollando una aplicación en la que, como paso intermedio, debo llamar a un ejecutable hecho en c++ para que opere con unos archivos ...
  #1 (permalink)  
Antiguo 05/03/2009, 06:31
 
Fecha de Ingreso: marzo-2009
Mensajes: 2
Antigüedad: 15 años, 8 meses
Puntos: 0
Error: Illegal fid --- Ayuda!!!

Hola,

Estoy desarrollando una aplicación en la que, como paso intermedio, debo llamar a un ejecutable hecho en c++ para que opere con unos archivos temporales. El caso es que no dispongo del código fuente de dicho ejecutable y me da un error que no comprendo:

error: Illegal fid.
called from file2cell.cpp
called from qspredarima.cpp

Como he dicho, no tengo el código fuente así que no puedo ver qué sucede en file2cell.cpp ni en el otro archivo. Sólo tengo esas tres líneas que me aparecen en la consola y el programa se detiene.

Que alguien me ayude, por favor.
Gracias. Un saludo.
  #2 (permalink)  
Antiguo 05/03/2009, 07:45
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Respuesta: Error: Illegal fid --- Ayuda!!!

No se realmente que pretendes que hagamos nosotros. Sabemos mucho menos que vos acerca del ejecutable que llamas (ni siquiera el nombre o lo que hace).

Podes depurarlo pero es un trabajo arduo sin el codigo fuente. ¿Siempre falla o en algunos casos - dependiendo de los parametros y archivos supongo - funciona?
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 05/03/2009, 08:43
 
Fecha de Ingreso: marzo-2009
Mensajes: 2
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Error: Illegal fid --- Ayuda!!!

Es un ejecutable desarrollado por alguien (que no conozco) con el único objetivo de realizar unas operaciones con archivos temporales. Tampoco sé bien lo que se supone que hace porque a mí nunca me ha llegado a funcionar. Lo que he podido deducir es que lee archivos temporales de texto, obtiene información de ellos con lo que crea otros archivos de texto. Es lo único que sé, a mí tampoco me han dicho más.
Yo estoy modificando la parte del programa que genera los primeros archivos. Luego se supone que debe llamarse al ejecutable que me está dando problemas, el cual generará unos nuevos archivos. La segunda parte del programa trabaja con los archivos que genera el ejecutable. Y no podré saber si mis modificaciones funcionan si no consigo hacer que funcione el ejecutable con los nuevos archivos de texto temporales que ha generado el programa después de mi intervención.

Ya sé que es difícil saber cuál es el problema, mi esperanza es que alguien sepa qué quiere decir o a qué se puede referir el mensaje de error "Illegal fid". Cualquier cosa que me pueda dar una pista, de momento probé con incompatibilidades del sistema operativo (probando en otras máquinas), también invesigué si era un problema de las rutas de los archivos temporales (pero también lo descarté). Imagino que a alguien más le habrá dado alguna vez un error semejante una aplicación hecha en c++.

Depurar sin fuentes es un infierno, y más sin saber qué debe hacer el programa. Y no se puede descompilar porque está en c++. Es un problemón, lo sé. Agradecería cualquier sugerencia.


PD: Se me olvidó decir que falla siempre, y no se le pasan parámetros

Última edición por JonC; 05/03/2009 a las 09:20
  #4 (permalink)  
Antiguo 09/03/2009, 05:26
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Respuesta: Error: Illegal fid --- Ayuda!!!

Trata de conseguir informacion de quien te dijo que lo llamaras; y de ser posible un ejemplo de archivos con el cual no falle.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 09/03/2009, 06:10
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error: Illegal fid --- Ayuda!!!

1. El mensaje es muy genérico y los datos que das muy pocos.

"illegal fid" no es un mensaje que podamos identificar como si fuera estándar o algo así y "fid" es algo bastante genérico que puede significar muchas cosas. No nos dices ni cómo se llama el programa ni de dónde sale ni nada. Es muy difícil darte una respuesta.

2. Posiblemente fid sea "file id".

Dado que dices que el programa lee algunos ficheros y los transforma, entonces es posible (pero no digo que sea realmente así) que "fid" sea "file id". El hecho de que ocurra en "file 2 cell", también hace pensar que pueda ser eso.

En ese caso, es posible que en algún sitio esté intentando hacer algo como fid = fopen(...) y que por alguna de las muchas razones posibles, la operación de abrir el fichero falle (porque no exista, porque no tenga permiso, por...). Luego al intentar leer de ese fichero dirá que no puede (illegal fid).

3. Deberías, como te dice Eternal Idol, buscar los orígenes.

El programa te lo habrá dado alguien que lo habrá sacado de algún sitio, ¿no? Alguien sabrá manejarlo o sabrá de dónde sale. Busca algunas instrucciones de uso o algún manual.

3.bis. Mira en el propio ejecutable
Si no puedes encontrar nada de nada, puedes:
- Intentar ejecutar el programa con alguna opción como -? -h /? /h -v --version --help --verbose o alguna más que se te ocurra. Puede que consigas que muestre alguna ayuda o por lo menos que muestre algún mensaje de copyright y con eso buscar en un buscador.
- Abrir el programa con algún editor de recursos o algún programa que te saque las cadenas de texto. Puede que encuentres así una notia de copyright, etc


4. Para depurar, usa un debugger.

Existen bastantes decompiladores/debuggers. Algunos de pago y otros gratis. Evidentemente no vas a conseguir el código fuente en C o C++, pero se puede decompilar a ensamblador o depurarlo en vivo.

Última edición por venkman; 10/03/2009 a las 03:10 Razón: Una pequeña errata al teclear :)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:17.