Как для своей проги назначить свою иконку

Тема в разделе "WASM.BEGINNERS", создана пользователем vovka, 31 июл 2006.

  1. vovka

    vovka New Member

    Публикаций:
    0
    Регистрация:
    23 май 2006
    Сообщения:
    45
    Как сделать чтобы моя прога выглядела не как виндовый
    exe'шник, а так как я нарисую иконку

    я так понимаю надо ресурсы использовать?!

    Но как ?
    Подскажите! Если можно на маленьком примере!

    Спасибо!
     
  2. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    вот так например для фасма
    Код (Text):
    1. section '.rsrc' resource data readable
    2.     directory RT_ICON,icons,\
    3.               RT_GROUP_ICON,group_icons
    4.  
    5.  
    6.     resource icons,1,LANG_NEUTRAL,icon_data
    7.     resource group_icons,17,LANG_NEUTRAL,main_icon
    8.  
    9.  
    10.     icon main_icon,icon_data,'1.ico'
     
  3. drmist

    drmist New Member

    Публикаций:
    0
    Регистрация:
    31 май 2005
    Сообщения:
    112
    Иконка программы определяется просто - это первая иконка в ресурсах.
    следовательно тебе нужно создать секцию ресурсов и поместить туда первой ту иконку, которую ты хотел бы видеть у твоей программы.
    для начала берешь .ico файл и помещаешь в один коталог с будующей прогой.
    затем создаешь .rc файл - в нем ты будешь перечислять нужные тебе ресурсы.
    Содержание его такое:
    1 ICON icon.ico
    затем тебе потребуется компилятор ресурсов. в Visual C++ и масме это rc.exe
    пишешь rc resources.rc.
    у тебя получится .res файл.
    допустим, при компиляции программы у тебя получился main.obj
    тогда при линковке тебе также нужно указать .res файл.
    Тут в Visual C++ и masm32 опять таки используется одна и таже утилита - link.exe
    link main.obj resources.res
    в результате получишь программу с иконкой.
    "по правильному" надо было бы перевести сначала .res файл в obj (утилитой cvtres.exe) и линковать его, но link.exe может также обрабатывать и res файлы
    учитывая все вышесказанное проекты на Visual С++ я собираю так:
    rc resources.rc
    cl /c /Gz /O1 main.cpp
    link main.obj resources.res

    cl - это сишный компилятор. флаг /c означает что код нужно только скомпилировать (не линковать), /Gz означает что все функции будут иметь тип stdcall, /O1 - тип оптимизации, минимальный размер, /O2 означал бы максимальную скорость