<html>
<head>
<style>
P
{
margin:0px;
padding:0px
}
body
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body>Gracias Steven,<BR>
 <BR>
efectivamente era ese el fallo. De todos me estoy planteando si trabajar con ficheros con esa clase o bien usar las funciones del API CreateFile, ReadFile, etc. Seguramente usaré estas últimas.<BR>
 <BR>
Un saludo,<BR>
Juan Antonio.<BR>
 <BR>

<HR id=stopSpelling>
<BR>
> Date: Sun, 10 Dec 2006 18:14:07 -0500<BR>> From: vze266ft@verizon.net<BR>> To: cconclase@listas.conclase.net<BR>> Subject: Re: [C con Clase] Problema Usando Ficheros.<BR>> <BR>> Hola Juan Antonio,<BR>> <BR>> Juan Antonio wrote:<BR>> > Hola,<BR>> > <BR>> > estoy programando un juego en el que también uso ficheros para<BR>> > guardar datos. Estoy programando con el API de Windows y con DEV-C++.<BR>> > Al comienzo de mi fichero principal añado el include para poder<BR>> > manejar archivos:<BR>> > <BR>> > #include <windows.h><BR>> > //#include <stdio.h><BR>> > #include <fstream><BR>> > #include "Ids.h"<BR>> > <BR>> > Cuando se produce el mensaje WM_CREATE es cuando quiero abrir el<BR>> > archivo y operar con el:<BR>> > <BR>> > case WM_CREATE:<BR>> > ifstream fentrada("Datos.dat", ios::in | ios::binary);<BR>> > <BR>> > Tal y como está ahora con el include de fstream me lanza al compilar<BR>> > que no reconoce ifstream:<BR>> > <BR>> > ifstream' undeclared (first use this function)<BR>> > <BR>> > si añado el,<BR>> > <BR>> > using namespace std;<BR>> > <BR>> > debajo de los includes obtengo lo siguiente:<BR>> > <BR>> > crosses initialization of `std::ifstream fentrada'<BR>> > <BR>> <BR>> Efectivamente, necesitas indicar el espacio con nombre 'std'. El otro <BR>> problema que tienes es que instancias un objeto dentro de un <BR>> 'switch/case' sin que tal objeto pertenezca a un bloque de ejecución. <BR>> Esto es, escribiste lo siguiente:<BR>> <BR>> case WM_CREATE:<BR>> ifstream fentrada( "Datos.dat", ios::in | ios::binary );<BR>> ...<BR>> <BR>> Cuando deberías haber escribito:<BR>> <BR>> case WM_CREATE:<BR>> {<BR>> ifstream fentrada( "Datos.dat", ios::in | ios::binary );<BR>> ...<BR>> }<BR>> <BR>> <BR>> Ahora bien, si vas a usar este objeto exclusivamente bajo el mensaje <BR>> 'WM_CREATE', entonces no hay ningún problema. Sin embargo, si necesitas <BR>> acceder a este objeto bajo otros mensajes, entonces deberías instanciar <BR>> el objeto localmente a la función. Debido al comportamiento de esta <BR>> función, tal objeto se instanciaría repetidamente, por lo que sugiero <BR>> declararlo estáticamente. Esto es,<BR>> <BR>> LRESULT CALLBACK WindowProcedure( HWND hwnd, UINT msg, WPARAM wParam, <BR>> LPARAM lParam )<BR>> {<BR>> static std::ifstream fentrada( "Datos.dat", ios::in | ios::binary );<BR>> <BR>> switch( msg )<BR>> {<BR>> ...<BR>> }<BR>> <BR>> return 0;<BR>> }<BR>> <BR>> <BR>> Espero haber aclarado el asunto.<BR>> <BR>> Steven<BR>> <BR>> <BR>> <BR>> <BR>> _______________________________________________<BR>> Cconclase mailing list<BR>> Cconclase@listas.conclase.net<BR>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net<BR><BR><br /><hr />¡Ya está aquí Windows Live Spaces! Ahora podrás crear fácilmente tu propio sitio Web. <a href='http://spaces.live.com/signup.aspx' target='_new'>Pruébalo</a></body>
</html>