Domanda

Diciamo che ho dei dati raster che voglio scrivere su un file .. Ora voglio scriverli come file bmp ..

Sembra che questi dati non siano allineati a DWORD, che, se ho capito bene, deve essere riempito con abbastanza byte per raggiungere il prossimo DWORD ..

Tuttavia, quando provo a riempirlo con questo codice:

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

Ricevo un errore .. Se provo a eseguire il debug (sto usando MSVC ++ 6.0), la prossima istruzione punta a un ASSERT in CFile :: Write che asserisce che il primo parametro è NULL .. Quindi questo fallisce ..

Come devo pad? dovrei scrivere:

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

, invece? o sarebbe trattato alla lettera ...?

Grazie ..

È stato utile?

Soluzione

Forse prova:

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

Il tuo primo esempio è, come dici tu, il tentativo di scrivere dati a cui punta un puntatore null. Il tuo secondo esempio dovrebbe scrivere dai byte '0', 'x', '0' che hanno valori ASCII 0x30, 0x78, 0x30, che probabilmente non è quello che intendi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top