Pregunta

Digamos que tengo algunos datos ráster que quiero escribir en un archivo ... Ahora quiero escribirlo como un archivo bmp ...

Estos datos no están alineados con DWORD, lo que, si entiendo correctamente, debe rellenarse con suficientes bytes para alcanzar el siguiente DWORD ...

Sin embargo, cuando intento rellenar con este código:

bmFile.Write(0x0, (4-(actualWidth%4)));

Recibo un error ... Si trato de depurar (estoy usando MSVC ++ 6.0), la siguiente declaración apunta a un ASSERT en CFile :: Write que afirma que el primer parámetro es NULL ... Entonces, esto falla ...

¿Cómo debo rellenarla? debo escribir:

bmFile.Write("0x0"(4-(actualWidth%4)));

en su lugar? ¿O esto sería tratado literalmente ...?

Gracias ..

¿Fue útil?

Solución

Quizás intente:

bmFile.Write("\0\0\0\0", (4-(actualWidth%4)));

Su primer ejemplo es, como usted dice, tratar de escribir datos apuntados por un puntero nulo. Su segundo ejemplo escribiría desde los bytes '0', 'x', '0' que tienen valores ASCII 0x30, 0x78, 0x30, que probablemente no sea lo que pretende.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top