Я конвертирую графическую библиотеку win32 для использования вместо нее библиотеки qt . Мне удалось успешно скомпилировать на XP, теперь, чтобы проверить истинные кроссплатформенные возможности новой и улучшенной графической библиотеки, я пытаюсь построить ее на Ubuntu (9.10).
Я столкнулся с несколькими ошибками во время компиляции - потому что некоторые классы специфичны для Windows, поэтому мне нужно снова изменить код.
У меня есть фрагмент кода, который выглядит следующим образом:
//original code (compiled succesfully under Windows)
unsigned short fill[4];
fill[0] = (unsigned short)(pattern & 0xF000) >> 8;
fill[1] = (unsigned short)(pattern & 0x0F00) >> 4;
fill[2] = (unsigned short)(pattern & 0x00F0);
fill[3] = (unsigned short)(pattern & 0x000F) >> 4;
HBITMAP hbmp = CreateBitmap(4, 4, 1, 1, fill);
QPixmap texture;
texture.fromWinHBITMAP(hbmp);
DeleteObject(hbmp);
brush1.setTexture(texture);
//Code to compile on Ubuntu
unsigned short fill[4];
fill[0] = (unsigned short)(pattern & 0xF000) >> 8;
fill[1] = (unsigned short)(pattern & 0x0F00) >> 4;
fill[2] = (unsigned short)(pattern & 0x00F0);
fill[3] = (unsigned short)(pattern & 0x000F) >> 4;
QBitmap bmp(4, 4, fill); //Is this correct ?
QPixmap texture;
texture.fromWinHBITMAP(bmp); // How to convert QBitmap to QPixmap ?
//DeleteObject(hbmp); // No longer required (local object scope)
brush1.setTexture(texture);