سؤال

دعنا نقول أن لدي بعض البيانات النقطية التي أريد أن أكتبها إلى ملف .. الآن أريد أن أكتبها كملف BMP ..

لا تكون هذه البيانات محاذاة dword ، والتي ، إذا فهمت بشكل صحيح ، يجب أن تكون مبطنة مع بايت كافية للوصول إلى DWORD التالية ..

ومع ذلك ، عندما أحاول أن أضعها بهذا الرمز:

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

أحصل على خطأ .. إذا حاولت التصحيح (أنا أستخدم MSVC ++ 6.0) ، يشير البيان التالي إلى تأكيد في CFILE :: يكتب الذي يؤكد أن المعلمة الأولى هي فارغة .. لذلك فشل ..

كيف يجب أن أقوم بوسادةها؟ هل يجب أن أكتب:

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

في حين أن؟ أم أن هذا سيعامل حرفيًا ...؟

شكرًا..

هل كانت مفيدة؟

المحلول

ربما حاول:

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

مثالك الأول هو ، كما تقول ، في محاولة كتابة البيانات التي يشير إليها مؤشر فارغ. مثالك الثاني سوف يكتب من البايت "0" ، "X" ، "0" الذي يحتوي على قيم ASCII 0x30 ، 0x78 ، 0x30 ، وهو ما لا تنوي ما تنوي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top