Pergunta

Digamos que eu tenha alguns dados raster que quero escrever em um arquivo. Agora quero escrever como um arquivo BMP ..

Esses dados não estão alinhados, o que, se eu entender corretamente, precisa ser preso com bytes suficientes para alcançar o próximo dword.

No entanto, quando tento prendê -lo com este código:

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

Eu recebo um erro .. se eu tentar depurar (estou usando o msvc ++ 6.0), a próxima declaração aponta para uma afirmação no cfile :: escreva que afirma que o primeiro parâmetro é nulo .. então isso falha ..

Como devo encaixar? Devo escrever:

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

em vez de? Ou isso seria tratado literalmente ...?

Obrigado..

Foi útil?

Solução

Talvez tente:

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

Seu primeiro exemplo é, como você diz, tentando escrever dados apontados por um ponteiro nulo. Seu segundo exemplo gravaria nos bytes '0', 'x', '0' que possuem valores ASCII 0x30, 0x78, 0x30, o que provavelmente não é o que você pretende.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top