Компиляция: проблемы с winasm

Discussion in 'WASM.BEGINNERS' started by Sickboy, Mar 30, 2008.

  1. Sickboy

    Sickboy New Member

    Blog Posts:
    0
    Ребята подскажите что к чему. Поставил masm32 v9.0 . Далее в папку C:\masm32\mbuilder поставил mbuilder, а в папку C:\masm32\wiasm поставил winasm. Когда создаю окошео с кнопками то в mbuilder все компилится, а winasm ругается, не находит имя_проекта.obj файл. Де его взять и как в Radasm создавать форму с контролами, тоже не выходит ниче. В файсме пробовал там чето ругается на include 'win32a.inc', пишет что не можт открыть это файл хотя а папке include он есть. Если можно дайте пару сслочек на учебники по асемблеру, самы основы хотябы изучить.Ток не надо предлагать искать в гугле и т.д .
     
  2. Sickboy

    Sickboy New Member

    Blog Posts:
    0
    Пути ко всем папкам выставил, сначала просто к примеру masm32\bin , ничего не копилировалось, потом прописал полностью С:\masm32\bin, так ко всем папкам , рузультат тотже.
     
  3. masm32

    masm32 New Member

    Blog Posts:
    0
    Дружищще, насколько я понял, тут все заняты созданием искуственного интелекта и написанием необнаружимых супер-вирусов... а ты с такими вопросами пристаешь...
    Можешь толком обьяснить - чего надо? В билдере компилится? Ну и компиль в билдере... Фасм и радасм - для особо продвинутых программеров с мазохисткими наклонностями...это моё (субъективное) мнение.
     
  4. Sickboy

    Sickboy New Member

    Blog Posts:
    0
    Меня интересует как компилировать в winasm, пишет что не находит файл имя_проекта.obj а где взять его я не знаю. Я создаю проэкт standart exe, добавляю rc файл ставлю на него форму ина форме контролы уже размещаю, нажимаю goall и форма с контроами не компилится. Подскажите что не так. И учебники может есть какие на русском.
     
  5. valterg

    valterg Active Member

    Blog Posts:
    0
    Sickboy
    Ну прочитать что-нибудь. Компиляция - превращение исходника(в данном случае xxxx.asm)
    в файл xxxx.obj. Winasm - это оболочка к компилятору и линкеру. Про то как ее настраивать
    и какие бывают ошибки наверняка написано и без поиска не обойтись.
    Навскидку - ты делал какой-то проект(возможно по статье) и где-то наврал.
    В результате Winasm построил YYYYYY.asm и попытался откомпилировать. Потом запустил
    линкер и тот не нашел YYYYYY.obj Скорее всего у тебя ляпа в путях для рабочих каталогов.
    Инфы слишком мало ты дал. А может были ошибки компиляции - я не в курсе насколько
    Winasm безглючен. Но советую самому поискать. Т.к. тут действительно два типа людей :
    одни как я не очень знают Winasm и тем не менее не попадают впросак, т.к. знают
    много чего еще, другие знают и работают в нем и вообще не попадали в такую ситуацию.
    ==============================================
    А задавать один и тот же вопрос в разных ветках - это вообще правилами запрещено.
    Ты думаешь , чем больше раз спросишь, тем скорее ответят. Раз не отвечают, значит
    ты плохо вопрос сформулировал. Проблемы с компиляцией редко бывают - там диагностика
    выдается.
     
  6. Sickboy

    Sickboy New Member

    Blog Posts:
    0
    Я не по статье делал. просто создал проект standart exe, добавил rc файл в проект, нанес на него форму, ну и дальше на форму button и listbox, нажимаю goall и пишет что obj не найден. masm32 вчера только поставил, тыкал изучал. Вот решил просто создать форму с контролами и запустить ее. А директории правильно вписал. Брал примеры которые с masm все запускается. вятвлял в их код в проект(без rc файла) и все работает. В mbuilder когда контрол ставишь код автоматически появляется, а здесь нет я думал может здесь принцип как в С++ или делфи что просто контрол ставишь и все потом только инструкции для него. Если надо код то напишите пожалйста что надо вписать. И еще заметил что в некоторых програмах в самом начале 386 написано, в некот. 486. Чем отличаются эти инструкции, точнее влияют както на быстродействие и размер выходного exe.
     
  7. Sickboy

    Sickboy New Member

    Blog Posts:
    0
    Вот ище вопрос. Почему откомпиленые програмы занимают место на диске в байтах кратное 8. 1024, 2048, 3072, 2560... смотрел в hex редакторе в програмах куча места забита нулями, это специально так сделано?
     
  8. masm32

    masm32 New Member

    Blog Posts:
    0
    Да, специально ...

    Билдера достаточно для того, чтобы начать изучать асм, а потом уже, когда... сможешь всё сделать не задавая вопросов...

    Обрати внимание - в нём 2 режима ( по крайней мере так было в 1.6 ) - если компилируешь какой-то исходник, а не проект - редактор кода должен быть равёрнут во весь экран , и наоборот ..

    Дополнительные опции, типа "как в Buildere", не очень-то и нужны...

    Всё компилится, работает, редатор кода преотличный, всё настраивается - если этого мало, то ... сочувствую...
     
  9. shoo

    shoo New Member

    Blog Posts:
    0
    с винасмом разобрался?
    если нет, то приложи проект, который не получается собрать, текст, который выводится в окно вывода, а также winasm.ini и waaddins.ini
     
  10. Sickboy

    Sickboy New Member

    Blog Posts:
    0
    Пишет вот что: SUBSYSTEM:WINDOWS /RELEASE /VERSION:4.0 "/LIBPATH:C:\masm32\Lib" "C:\masm32\WinAsm\Projects\1.obj" "C:\masm32\WinAsm\Projects\1.res" "/OUT:C:\masm32\WinAsm\Projects\project1.exe"
    LINK : fatal error LNK1181: cannot open input file "C:\masm32\WinAsm\Projects\1.obj"
    Как говорил ранее если копирую из папки masm32 к примеру exampl01/popup.asm, копирую код того файло и ставлю его в пустой проект то все работает. Файл waaddins.ini не нашел нигде. Версия winasm 5.1.3.0. В архиве проект и winasm.ini.
     
  11. shoo

    shoo New Member

    Blog Posts:
    0
    хм...
    в архиве есть файл "асм", но он пустой. конечно же, в этом случае объектный файл не создается и потом не находится линкером.

    я бы рекомендовал открыть с помощью студии чего-нибудь из Samples для начала и попробовать скомпилить, а затем попробовать создать новый проект из шаблона - и также попробовать скомпилить, а уже потом пробовать примеры, которые идут с масмом32.

    собственно студия выполняет компиляцию средствами масма по параметрам, указанным в файле проекта (wap), которых нет в примерах для пакета масм32. вручную проект можно создать так: в студии создать пустой проект (Ctrl+N) соответствующего типа, сохранить его в папке с примером, а затем добавить в проект все необходимые файлы, после чего выполнить компиляцию.

    для студии есть надстройка FASM, которая может помимо всего прочего также конвертировать существующие исходники в проекты, запускать пакетные файлы и т.п. - она скачивается отдельно и размещается в подпапке AddIns (где должен располагаться и waaddins.ini) (к ней есть целое отдельное пособие)
     
  12. Sickboy

    Sickboy New Member

    Blog Posts:
    0
    Просто в проектах masm32 в самом коде сразу есть указания на создание формы, кнопуи и т.д Если можешь скажи пожалуйста что надо вставить в пустой асм файл или выложи измененный проект.
     
  13. Sickboy

    Sickboy New Member

    Blog Posts:
    0
    Пробовал открывать пример из samples, все хорошо вот только в некоторых проектах пишет что не удается открыть WAAddIn.inc, хотя он есть в папке INC
     
  14. shoo

    shoo New Member

    Blog Posts:
    0
    если проект создается для существующих исходников, то этот пустой асм вообще не нужен - его можно удалить. а вот асм-файлы с исходниками из папки примеров включить нужно.

    вот пара примеров из пакета масм32, переделаных в проекты студии:
     
  15. Sickboy

    Sickboy New Member

    Blog Posts:
    0
    Я так посмотрел еще проекты, там для каждого котрола код свой, как в mbuilder на подобие, только когда контрол кидаешь на форму то этот код не появляется к buildere.( поэтому и не компилится. Есть какаято опция которая сразу при создании контролов создает код или по начала всетаки в buildere пробовать ваять?И еще нашел только файл WAAddIn.inc, с расширением ini нету такого.
     
  16. shoo

    shoo New Member

    Blog Posts:
    0
    вот мой минимальный пример для масма
     
  17. shoo

    shoo New Member

    Blog Posts:
    0
    WAAddIn.inc - это для надстроек. с них не нужно начинать, разве что если возникнет желание написать свою надстройку к студии.

    код при добавлении контрола на диалог автоматически не добавляется - его нужно писать самому. здесь нет подобия такого "билдера", но можно использовать шаблоны с готовым кодом, который относительно легко изменять вручную при добавлении новых контролов. шаблоны - обычные проекты, которые расположены в попапках с названиями категорий, котрые, в свою очередь, расположены в подпапке Templates.
     
  18. Sickboy

    Sickboy New Member

    Blog Posts:
    0
    Ага, а вот еще чем отличаются инструкции 386;486...
     
  19. shoo

    shoo New Member

    Blog Posts:
    0
    "не удается открыть" - файлы можно добавлять в проект с относительными путями и абсолютными. если файл добавляется не из папки проекта, то он добавляется с абсолютным путем, который может отличаться на другой машине, поэтому студия его не находит, но на компиляцию (в данном случае) это не повлияет
     
  20. Sickboy

    Sickboy New Member

    Blog Posts:
    0
    shoo, спасибо большое за помощь наконецто разобрался. Нашел учнбник уже "
    Яковлев А.В.
    АРХИТЕКТУРА МП И ЯЗЫК
    АССЕМБЛЕРА
    Дополнительный лекционный материал
    «Программирование на Ассемблере в Win32» ", щас буду пробовать.