Новые книги

Книга содержит полное описание наиболее распространенных реализаций языка программирования Си на 16-разрядных микроЭВМ, совместимых с IBM PC. Приведено описание стандартных библиотек языка.

Для слушателей учебных курсов в области программирования, разработчиков программного обеспечения, а также студентов соответствующих специальностей вузов. Может быть использовано как техническая документация и справочное пособие для широкого круга программистов, как профессионалов, имеющих большой опыт работы на языке Си, так и начинающих программировать на Си.
В книге рассмотрены вопросы, связанные с программированием под Linux: файловый ввод/вывод, метаданные файлов, основы управления памятью, процессы и сигналы, пользователи и группы, вопросы интернационализации и локализации, сортировка, поиск и многие другие. Много внимания уделено средствам отладки, доступным под GNU Linux. Все темы иллюстрируются примерами кода, взятого из V7 UNIX и GNU. Эта книга может быть полезна любому, кто интересуется программированием под Linux.

Для использования собственной иконки нужно создать файл ресурса:

-->Begin icon.rc <--

  ICON_1 ICON 180.ico
  ICON_SM ICON 163.ico

-->End of icon.rc<--

Затем icon.rc откомпилировать с помощью какого-нибудь компилятора ресурсов(res-файл должен быть 32-bit Windows compatible). Возьмем brcc32.exe:

  brcc32 icon.rc
Получим icon.res - понадобится при линковании.

WNDCLASSEX struct
  clSize           dword    ?
  clStyle          dword    ?
  clLpfnWndProc    dword    ?
  clCbClsExtra     dword    ?
  clCbWndExtra     dword    ?
  clHInstance      dword    ?
  clHIcon          dword    ?
  clHCursor        dword    ?
  clHbrBackground  dword    ?
  clLpszMenuName   dword    ?
  clLpszClassName  dword    ?
  clHIconSm        dword    ?
WNDCLASSEX ends

clHIcon: Содержит дискриптор иконки получаемый после вызова LoadIcon.
clHIconSm: Тоже самое для маленькой иконки, если null то используется hIcon.

--------------------------------------------------
.data
  szIconName       db 'ICON_1', 0
  szIconSmName     db 'ICON_SM', 0
  ...
--------------------------------------------------
.code
  ...
  push    offset szIconName
  push    [hInst]
  call    LoadIconA
  mov     [wc.clHIcon], eax

  push    offset szIconSmName
  push    [hInst]
  call    LoadIconA
  mov     [wc.clHIconSm], eax
  ...
  регистируем класс, создаем окно...
---------------------------------------------------

При линковании нужно указать файл ресурса:

  tlink32 [options] my.obj,my.exe,,,,my.res

Полный текст программы: cr_icon.zip