Файлы ресурсов

Тема в разделе "WASM.BEGINNERS", создана пользователем ChuCha, 19 май 2007.

  1. ChuCha

    ChuCha New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2007
    Сообщения:
    7
    Здраствуйте, я ещё совсем новичок, но у меня есть вопрос относительно masm32.
    Как "вшить" фаил ресурсов в фаил програмы при компилировании и/или вписать его прямо в исходник програмы? В тутотриале Iczelion'а ответа не нашёл, поэтому решил обратиться к вам.
     
  2. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    что такое .rc знаешь?
     
  3. ChuCha

    ChuCha New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2007
    Сообщения:
    7
    Конечно, а зачем же я тогда спрашиваю?
     
  4. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    из rc делаешь res, потом obj. Потом при линковке просто добавляешь этот обж в ком. строку. Посмотри bres.bat в пакете масма - увидишь, как делать такую конвертацию. Что же касается написания самого rc, то тут читай хелп масма - там написано, как объявлять иконки, диалоги и прочие ресурсы. А еще можно каким-нить редактором ресурсов создать готовый rc или res. А дальше - как я и написал.
     
  5. ChuCha

    ChuCha New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2007
    Сообщения:
    7
    Можно поподробнее? Вот я создал из *.rc - *.obj фаил и как теперь будет выглядеть компиляция файла test.asm с готовым res.obj? Сам я автоматизировал процесс компиляции через build.bat из masm32/bin. Что в нём поправить, чтоб компилировать можно было просто командой build имя_файла имя_файла_ресурсов?
     
  6. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    \masm32\bin\ml /c /coff test.asm
    \masm32\bin\rc test.rc
    \masm32\bin\link /NOLOGO /SUBSYSTEM:WINDOWS /RELEASE /LIBPATH:\masm32\lib test.obj test.res

    Это уже Вам решать.
     
  7. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    ты сначала компилируешь файл .asm в .obj. Потом линкуешь. Просто прилинкуй файл ресурсов. Выглядит примерно так:
    Код (Text):
    1. \masm32\bin\link /SUBSYSTEM:WINDOWS test.obj rsrc.obj
    где rsrc.obj - скомпилированные ресурсы
     
  8. Sturgeon

    Sturgeon New Member

    Публикаций:
    0
    Регистрация:
    17 окт 2006
    Сообщения:
    111
    Линкуется вроде бы такой строчкой:
    \masm32\bin\Link /SUBSYSTEM:WINDOWS "имя_файла.obj" имя_файла.res

    В МАСМе есть текстовый редактор QEDITOR.EXE. В меню script есть пункт Create makeit.bat. Можешь поковыряться с ним.
     
  9. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Quantum
    а шо, линковать можно уже .res, а не .obj?

    П.С.: а можно как-нить заставить масм конвертировать "испорченную" с точки зрения формата иконку из .rc в .res? А то обычным способом отказывается.
     
  10. ChuCha

    ChuCha New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2007
    Сообщения:
    7
    Вот значит... Я тут пошевелил мозгами и отредактировал build.bat. Теперь я компилирую командой:
    build имя_исходника имя_файла_ресурсов
    Но возникла трабла - если фаил ресурса не указать то компилировать он не будет, а мне надо чтоб в случае если второй параметр не указан, то он бы просто компилировал без этого файла ресов...
     
  11. ChuCha

    ChuCha New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2007
    Сообщения:
    7
    Ещё немного пошевелил и вот конечный BUILD.BAT из masm32/bin:
     
  12. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Дык ты сделай шаблоны.
    1-й - для ехе
    2-й - для длл
    3-й - батник с компиляцией ресурсов
    4-й - батник без компиляции ресурсов

    И в каждом новом проекте выбирай, что тебе надо. Зачем такие сложные извраты?

    П.С. есть такая фишка как if exists some_file some_action. Вот так вот можно. Тока ресурсы тогда называй одинаково. Или применяй маску типа set filename=имя файла/ if exist %filename%.exe del %filename%.exe. Это я как пример привожу
     
  13. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    MSoft
    Можно.

    ChuCha
    Задайте обоим файлам (asm и rc) одно и тоже имя: test.asm и test.rc. Вызывайте батник так: build test

    В батнике:
    if not exist "%1.rc" goto compile_witout_rc

    и т.д.

    ЗЫ: Опоздал
     
  14. ChuCha

    ChuCha New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2007
    Сообщения:
    7
    На мой взгляд легче сделать один фаил "посложнее" и не создавать отдельные батники для каждого вида компиляции.
    Ну тык я так и делал...
    Ну я использую имена которые мне удобнее... Впрочем тут разницы особой нету

    Проблема решена, всем спасибо