warning LNK4033: converting object format from OMF to COFF

Тема в разделе "WASM.BEGINNERS", создана пользователем wasmer, 9 ноя 2007.

  1. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    компилируем прогу
    Код (Text):
    1. ;test.asm
    2.     .386
    3.     .model    flat
    4.     .code
    5. start:  
    6.         mov eax,eax
    7. end    start
    смотрим help:

    и...не находим опции /z2!
    зачем же тогда она используется?
    а главное - зачем masm преобразует OMF в COFF и как запретить ему это делать (чтобы потом прилинковать тасмовый obj файл)?
     
  2. Stub

    Stub New Member

    Публикаций:
    0
    Регистрация:
    11 май 2004
    Сообщения:
    311
    Адрес:
    Siberia
    Все верно, т.к. у MASM'а ее никогда и не было. Лучше линкуй с помощью TASM'ового tlink'а, тогда и наверняка проблем не будет :derisive:
    Код (Text):
    1. D:\masm32\bin>ml /c test.asm
    2. Microsoft (R) Macro Assembler Version 6.14.8444
    3. Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.
    4.  
    5.  Assembling: test.asm
    6.  
    7. D:\masm32\bin>
     
  3. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    хорошо, компилирую тасмом

    выбрасывается окошко

    выбираю OK
    выбрасывается окошко с той же информацией
    выбираю OK
    выбрасывается окошко но уже с такой информацией

    загружаю этот test.exe в OllyDbg
    выбрасывается окошко

    выбираю OK и нажимаю Shift+F9 (pass exception to program) и вижу в EIP значение 7C4E87B3 (вместо привычного 00401005)

    что всё это значит?
     
  4. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    wasmer
    Где в программе ret или ExitProcess?
     
  5. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
  6. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    wasmer
    Мое сообщение по поводу ошибки времени выполнения, а с компиляцией проблем нет.
     
  7. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    сначала управление передаётся на точку входа, а она установлена в 7C4E87B3
    почему?
    и как лучше это исправить?
     
  8. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    wasmer
    точку входа, а она установлена в 7C4E87B3
    У меня точка входа нормальная - 1000h. Прицепляй сюда exe'шник.
     
  9. Stub

    Stub New Member

    Публикаций:
    0
    Регистрация:
    11 май 2004
    Сообщения:
    311
    Адрес:
    Siberia
    покажи командную строку к компилятору
     
  10. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    в масме это проходит
    ml /c test.asm
    хотя пока не знаю какой формат на выходе - OMF или COFF
    а вот в тасме всё компилируется и линкуется но неправильно устанавливается точка входа
    как это сделать?
     
  11. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    wasmer
    ml /c test.asm
    Это только компиляция. Покажи командную строку к линкеру.

    вот в тасме всё компилируется и линкуется но неправильно устанавливается точка входа
    Покажи командную строку к компилятору и линкеру.

    Для прикрепления файла жми на ссылку "Ответить".
    В открывшемся окне будет соответствующее поле.
    После прикрепления сообщение редактировать не надо, ссылка аттач удалена из него, хотя можно попробовать указать атач заново (я не пробовал).
     
  12. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    то есть формат test.obj OMF если я правильно понимаю, что мне и нужно
    затем тот же test.asm компилирую тасмом:
    сейчас прикреплю получившийся exe
     
  13. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    ну вообщем разобрался - минимальный файл у меня такой
    Код (Text):
    1. .386                                
    2. .model  flat
    3. .code
    4. start:
    5. ret
    6. end     start
     
  14. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    минимальная компиляция такая
     
  15. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    причём по умолчанию tlink32 линкует приложение как консольное - при запуске появляется консоль
     
  16. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    чтобы приложение линковалось как windows надо вызывать линкер так: