Problemas al escribir en archivo
Publicado por Nelek (816 intervenciones) el 16/02/2007 14:50:47
Hola, tengo el siguiente codigo (que me da problemas),
en el header
CArray <BYTE, BYTE&> p_aPrueba;
void CFPSView::WritePCCode (CFile* file)
{
int nCodeLarge = 320;
p_aPrueba.SetSize (nCodeLarge);
CString str1 = "", str2 = "";
str1.Format ("%s%i", str1, p_aPrueba.GetSize());
str2.Format ("%s%i", str2, nCodeLarge);
AfxMessageBox ("Tiene "+str1+" elementos de "+str2+" que deberia tener");
BYTE aPrueba [320];
for (int i = 0; i < 320; i++)
{
if ( i < 256)
p_aPrueba[i] = i;
else
p_aPrueba[i] = 0;
}
const void* lpCodeBuf;
lpCodeBuf = (void*)&p_aPrueba[0];
file->Write (lpCodeBuf, sizeof (p_aPrueba));
return;
}
Con el AfxMessageBox compruebo que realmente el vector CArray del MFC tiene los elementos que pido, se rellena como toca, pero resulta que al escribir en el archivo, me escribe SOLO 20 bytes. Si conforme lo tengo, simplemente borro los "p_" y dejo que se ejecute exactamente lo mismo pero para el "BYTE Prueba [320]" entonces funciona a la perfeccion y hace lo que se supone que debe de hacer.
Por que narices con el p_aPrueba, me funciona mal y con el array de toda la vida me funciona bien?
en el header
CArray <BYTE, BYTE&> p_aPrueba;
void CFPSView::WritePCCode (CFile* file)
{
int nCodeLarge = 320;
p_aPrueba.SetSize (nCodeLarge);
CString str1 = "", str2 = "";
str1.Format ("%s%i", str1, p_aPrueba.GetSize());
str2.Format ("%s%i", str2, nCodeLarge);
AfxMessageBox ("Tiene "+str1+" elementos de "+str2+" que deberia tener");
BYTE aPrueba [320];
for (int i = 0; i < 320; i++)
{
if ( i < 256)
p_aPrueba[i] = i;
else
p_aPrueba[i] = 0;
}
const void* lpCodeBuf;
lpCodeBuf = (void*)&p_aPrueba[0];
file->Write (lpCodeBuf, sizeof (p_aPrueba));
return;
}
Con el AfxMessageBox compruebo que realmente el vector CArray del MFC tiene los elementos que pido, se rellena como toca, pero resulta que al escribir en el archivo, me escribe SOLO 20 bytes. Si conforme lo tengo, simplemente borro los "p_" y dejo que se ejecute exactamente lo mismo pero para el "BYTE Prueba [320]" entonces funciona a la perfeccion y hace lo que se supone que debe de hacer.
Por que narices con el p_aPrueba, me funciona mal y con el array de toda la vida me funciona bien?
Valora esta pregunta


0