Cfile::Seek() runtime error

18/07/2004 - 14:11 por XAN | Informe spam
Hola, en mi aplicación tengo este código:

#define POS_CABECERA 258048

CFile f;
f.Open(m_fichero,CFile::modeRead|CFile::typeBinary);

f.Seek(POS_CABECERA,CFile::begin);
f.Read(config,sizeof(cfgstruct));

f.Close();

POS_CABECERA es una posicion #definida en el archivo que estoy abriendo (el
archivo que abro es el propio ejecutable), y en Windows 2000/XP funciona
perfectamente, pero cuando lo ejecuto en Windows 98/ME me aparece un Runtime
Error en la llamada a CFile::Seek(), cual es la diferencia entre los 2
sistemas operativos, estoy haciendo algo mal?

No tengo más información sobre el error ya que mi Visual Studio está
instalado en un Windows XP y las pruebas las hago sobre un Windows 98, por
lo tanto no puedo debuggearlo a fondo, hay alguna forma de debuggearlo en
Windows 98 sin tener que instalar el Visual Studio al completo?

Gracias por vuestra atención.
XAN
 

Leer las respuestas

#1 Eduard Tomàs
20/07/2004 - 13:37 | Informe spam
Buenas XAN...

No se porque se te puede dar el error pero sí se te puedo
decir como depurar la aplicación en Windows 98 sin
necesidad de instalar el Visual Studio al completo.

Lo único que tienes que instalar en la máquina con
Windows 98 es el depurador remoto.
Luego desde la máquina Windows 98 abres el depurador
remoto (suele estar en "C:\Archivos de programa\Microsoft
Visual Studio\Common\MSDev98\Bin\MSVCMON.EXE") y lo
arrancas.
Te saldrá un cuadro de dialogo (Visual C++ Debug Monitor)
con una listbox con una opción ("Network (TCP/IP)") y
varios botones. Dale al de Settings y entra la IP del
ordenador de Windows XP en "Target machine name or
address", luego le das a OK y al botón de Connect. Verás
que el Debug Monitor se queda en el estado "Connecting..."

Ahora en la máquina de windows xp DEBES compartir el
directorio donde se genera el ejecutable para que sea
accesible desde la máquina de windows 98. Si por ejemplo
tu proyecto està en C:\proyecto deberás compartir
C:\proyecto\Debug.
Abres el proyecto con el Visual Studio de la maquina de
Windows XP, te vas a Project->Settings->Pestaña Debug.
Verás un textbox que pone "Remote Executable Path and
File Name". Entra en este textbox el nombre del
directorio compartido y el ejectutable que vas a depurar.

Ahora te vas al menú Build->Debug Remote Connection y te
aparecerá un dialogo con dos opciones ("local"
y "Network"). Selecciona "Network" y dale a Settings.
En Settings entra la IP de la máquina con Windows 98.

En este momento empieza a depurar normalmente. El
programa se ejecutará en la máquina que tiene el Windows
98 pero lo depurarás con el Visual Studio de la máquina
de Windows XP.

Cuando quieras depurar el proyecto en la máquina de
Windows XP basta que vayas a Build->Debug Remote
Connection y escojas la opción "local" otra vez.

Espero que te sirva, ya nos contarás ;)
edu


Hola, en mi aplicación tengo este código:

#define POS_CABECERA 258048

CFile f;
f.Open(m_fichero,CFile::modeRead|CFile::typeBinary);

f.Seek(POS_CABECERA,CFile::begin);
f.Read(config,sizeof(cfgstruct));

f.Close();

POS_CABECERA es una posicion #definida en el archivo que


estoy abriendo (el
archivo que abro es el propio ejecutable), y en Windows


2000/XP funciona
perfectamente, pero cuando lo ejecuto en Windows 98/ME


me aparece un Runtime
Error en la llamada a CFile::Seek(), cual es la


diferencia entre los 2
sistemas operativos, estoy haciendo algo mal?

No tengo más información sobre el error ya que mi Visual


Studio está
instalado en un Windows XP y las pruebas las hago sobre


un Windows 98, por
lo tanto no puedo debuggearlo a fondo, hay alguna forma


de debuggearlo en
Windows 98 sin tener que instalar el Visual Studio al


completo?

Gracias por vuestra atención.
XAN


Preguntas similares