понедельник, 28 декабря 2009 г.

Как засодить wxWidgets в жопу WinCE 4.2!

Это мой первый технический пост в моем блоге. В целях тренировки я решил описать сборку wxWidgets 2.8.10 для WinCE 4.2. И писать я его, блять, буду так как могу.
Собирать будем вестимо под embedded VC++ 4.0 - ибо то что сейчас 2009 год (конец!) никого не ебет.

Собственно пиздуем на www.wxwidgets.org и сливаем оттуда исходники. В принципе рекомендую слить и документацию. Но настоящий быдлокодер доками не пользуется, а начинает ебать мозг на форумах (в соответствие с 1-м законом быдлокодинга). Замечу - сливать лучше архив для всех осей сразу, а не для маздая в отдельности. Этим действием мы достаточно пиздато обойдем некоторые заебоны компилятора.
Вопросы разархивации я опущу к херам. Надеюсь ясно - что результат мероприятия кроется в получении либо .dll, либо .lib, либо, блять, и того, и другого.
Нас интересует воркспейс находящийся по следующему адресу ..\wxWidgets-2.8.10\build\wince\wx.vcw.
В него входит 6 проектов - сложность вызывает (у настоящего быдлокодера) только wx_mono.vcp. Остальные собираются на ура - сыпля обильно варнингами. В соответствие со 2-м законом быдлокодинга - забиваем хуй на варнинги, ибо реально влом их давить. Тем более делал не я.
По поводу настроек проектов - можно забить хер. По умолчанию все свалится в ..\wxWidgets-2.8.10\lib

Итак, собираем wx_mono.vcp. И получаем - вестимо хер в жопу, следующим сообщением:
--------------------Configuration: mono - Win32 (WCE x86) Release--------------------
Compiling...
extended.c
Compiling...
checklst.cpp
D:\wxWidgets-2.8.10\src\msw\wince\checklst.cpp(182) : error C2065: 'ListView_SetCheckState' : undeclared identifier
D:\wxWidgets-2.8.10\src\msw\wince\checklst.cpp(183) : error C2143: syntax error : missing ';' before '}'
dc.cpp
D:\wxWidgets-2.8.10\src\msw\dc.cpp(1779) : error C2065: 'ABC' : undeclared identifier
D:\wxWidgets-2.8.10\src\msw\dc.cpp(1779) : error C2146: syntax error : missing ';' before identifier 'width'
D:\wxWidgets-2.8.10\src\msw\dc.cpp(1779) : error C2065: 'width' : undeclared identifier
D:\wxWidgets-2.8.10\src\msw\dc.cpp(1781) : error C2039: 'GetCharABCWidths' : is not a member of '`global namespace''
D:\wxWidgets-2.8.10\src\msw\dc.cpp(1781) : error C2065: 'GetCharABCWidths' : undeclared identifier
D:\wxWidgets-2.8.10\src\msw\dc.cpp(1783) : error C2228: left of '.abcA' must have class/struct/union type
D:\wxWidgets-2.8.10\src\msw\dc.cpp(1784) : error C2228: left of '.abcA' must have class/struct/union type
D:\wxWidgets-2.8.10\src\msw\dc.cpp(1793) : error C2228: left of '.abcC' must have class/struct/union type
D:\wxWidgets-2.8.10\src\msw\dc.cpp(1794) : error C2228: left of '.abcC' must have class/struct/union type
display.cpp
D:\wxWidgets-2.8.10\src\msw\display.cpp(497) : error C2039: 'EnumDisplaySettings' : is not a member of '`global namespace''
D:\wxWidgets-2.8.10\src\msw\display.cpp(497) : error C2065: 'EnumDisplaySettings' : undeclared identifier
D:\wxWidgets-2.8.10\src\msw\display.cpp(497) : error C2065: 'ENUM_CURRENT_SETTINGS' : undeclared identifier
Generating Code...
Error executing cl.exe.

wxwince28.lib - 14 error(s), 0 warning(s)

ах какая заебись - в жопу врот его ебись. (стихи не мои)

Ненастоящий быдлокодер сразу забьет хер. Настоящий будет разбираться. Решение кроется в 3-м законе быдлокодинга - комментируй все то - что не компилируется. Однако если мы копнем глубже то:
1.) ListView_SetCheckState - реально хер его знает откуда взялся. Комментируем.
2.) Структура ABC - собственно тоже откуда вылезла - хер проссышь. Комментируем.
3.) EnumDisplaySettings - такая функция WinAPI отсутствует в SDK WinCE 4.2, как класс. Комментируем.
Мы столкнулись с тем, что разработчики не хуя не протестировали библу именно под CE 4.2. Но в оправдание стоит отметить, что предлагаемый воркспейс предназначен для WinCE 3, WinCE 4.x, WinCE 5, WinCE6 Rx, WinMobile 5, WinMobile 6. Типа - один на всех - поэтому это еще пиздато, что доработка отбойным молотком была не столь грандиозной.

Итак проделав вышеописанные операции мы получим желанные библиотеки и достаточно пиздатого конкурента MFC на WinCE 4.2.

Каков же результат данного поста? - спросят немногие.
Я вам отвечу - свод законов быдлокодинга:
1. Не пользоваться документацией, а троллить.
2. Забивать хер на варниги.
3. Комментировать ошибки - не разбираясь.

Всех благ! Реально заебало это писать.

3 комментария:

  1. Сенкс, теперь я знаю 3 вещи, которыми обычно занимаюсь :)

    З.Ы. Кстати, исправь ссылку на виджеты, она у тебя без http стоит.

    ОтветитьУдалить
  2. Есть маза включить законы быдлокодинга в программу бакалавров информатики.

    ОтветитьУдалить
  3. Keeper - спасибо камрад. подправил и немного добавил.

    Дмитрий - согласный. хоть какие то правила. а то все бакалавры просто, блять, беспредельщики :)

    ОтветитьУдалить