문제

파일에 쓰고 싶은 래스터 데이터가 있다고 가정 해 봅시다. 이제 BMP 파일로 쓰고 싶습니다 ..

이 데이터는 DWORD가 정렬되지 않으며, 올바르게 이해하면 다음 DWORD에 도달 할 수있는 충분한 바이트로 패드해야합니다.

그러나이 코드로 패드하려고 할 때 다음과 같습니다.

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

오류가 발생합니다. 디버그를 시도하면 (MSVC ++ 6.0을 사용하고 있습니다) 다음 문장은 CFILE :: 첫 번째 매개 변수가 NULL이라고 Assert를 가리 킵니다. 그래서 이것은 실패합니다.

어떻게 패드해야합니까? 작성해야합니다.

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

대신에? 아니면 말 그대로 취급 될까요 ...?

감사..

도움이 되었습니까?

해결책

아마 시도 :

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

첫 번째 예는 당신이 말했듯이, 널 포인터가 지적한 데이터를 작성하려고하는 것입니다. 두 번째 예제는 ASCII 값이 0x30, 0x78, 0x30을 갖는 바이트 '0', 'x', '0'에서 씁니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top