Question

Disons que j'ai des données raster que je veux écrire dans un fichier .. Maintenant, je veux l'écrire sous forme de fichier bmp ..

Ces données ne sont pas alignées DWORD, ce qui, si je comprends bien, doit être complété avec suffisamment d'octets pour atteindre le prochain DWORD ..

Cependant, lorsque j'essaie de le remplir avec ce code:

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

Je reçois une erreur .. Si j'essaie de déboguer (j'utilise MSVC ++ 6.0), l'instruction suivante pointe vers un ASSERT dans CFile :: Write qui affirme que le premier paramètre est NULL .. Donc, cela échoue ..

Comment dois-je tamponner? devrais-je écrire:

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

à la place? ou cela serait-il traité littéralement ...?

Merci ..

Était-ce utile?

La solution

Essayez peut-être:

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

Votre premier exemple consiste, comme vous dites, à écrire des données pointées par un pointeur nul. Votre deuxième exemple écrirait à partir des octets '0', 'x', '0' qui ont des valeurs ASCII 0x30, 0x78, 0x30, ce qui n’est probablement pas ce que vous souhaitez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top