Баг или ошибка Мasm32

Тема в разделе "WASM.WIN32", создана пользователем Castle, 8 фев 2009.

  1. Castle

    Castle New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    5
    Если кто сможет растолковать, буду благодарен.
    1. создаем следующий исходник:
    .386
    .model flat,stdcall
    option casemap:none
    include d:\masm32\include\windows.inc
    include d:\masm32\include\user32.inc
    include d:\masm32\include\kernel32.inc
    includelib d:\masm32\lib\user32.lib
    includelib d:\masm32\lib\kernel32.lib

    .data
    Sl db "\",0 ; Слэш
    msk_1 db "copy.exe",0; Имя файла
    .data?
    buf_1 db 150 dup (?)
    buf_2 db 150 dup (?)
    .code
    start:
    invoke GetSystemDirectory,addr buf_1 sizeof buf_1
    invoke lstrcat,addr buf_1,addr Sl
    invoke lstrcat,addr buf_1,addr msk_1
    invoke GetModuleFileName,0,addr buf_2,sizeof buf_2
    invoke CopyFile,addr buf_2,addr buf_1,0
    end start

    2. делаю "батник" компиляции с такими строками:
    ML /c coff /cp test.asm
    LINK /subsystem:windows test.obj
    pause
    3. при компиляции пишет ошибку:
    LINK: warning LNK4089:all reference to "user32.dll" discarded by /OPT:REF

    вот все понять не могу где ошибка и в чем дело то..?
    помогите если можете..
    п.с. ОС winXP. Masm32 v8.
     
  2. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
    Это не ошибка, это предупреждение.
    Означает что не используются функции user32.dll, поэтому в импорт она не попадёт.
     
  3. Castle

    Castle New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    5
    т.е. если я правел
    но понял, это просто в качестве информации к сведенью...
    исключил использование user32.dll
    сообщение больше не выводится, но как и раньше не создается сам исполнительный модуль (файл exe)?

    Пробывал чисто логически найти ошибочную строку. и получился интересный результат..
    Если убрать из кода третий или четвертый вызывы функций API то exe-шник создается.
    проверил еще раз првельность вызыва этих функций вроде все правельно..но упорно с ними компилятор не создает exe-шника и не указывает на какие-либо ошибки.

    Если нужны сами файлы могу прикрепить.
     
  4. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
    Единственное, что поменял:
    Всё компилится. Молча, без ошибок или предупреждений.
    Исполняемый модуль… ну, в папке "d:\masm32\bin\" искать не пробовали?

    offtop: Злобный вирустрояна пишете? :lol:
     
  5. Castle

    Castle New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    5
    Данные опечатки возникли на форуме..в исходнике их нет.
    И чтоб не парится с поиском
    файлов я все делаю в отдельной папке пенеся все нужное в нее.
    в прикрепленном архиве в папке test запускаю батник и в ней же должен появится ехе-шник.
     
  6. Castle

    Castle New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    5
    нет в создоваемой прге в буфера набиваются другие пути..системная папка и путь активации взят в качестве примера, чтоб мАксально сократить код не загромаждая его неотносящееся к делу вычисления.
     
  7. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    Castle
    у меня антивирь палит его как неизвестного виря, и на карантин, а так все создается нормально
     
  8. Castle

    Castle New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    5
    Вот это да...точно..только мой
    антивирь молча его блакировал..
    Отключил антивиря и все компильнусь..
    спасибо вам, что помогли разобратся.

    п.с. скоро прогу не напишешь т.к. кусок ее может походить на какой то вирь..:)