MASM - не работает CALL

Тема в разделе "WASM.BEGINNERS", создана пользователем Wardrag, 8 авг 2010.

  1. Wardrag

    Wardrag New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2010
    Сообщения:
    10
    Вот такой вот код не работает:

    Код (Text):
    1. .386
    2. .model flat,stdcall
    3.  
    4. EXTERN MessageBoxA@16:NEAR
    5.  
    6.  
    7. .data
    8.    
    9.     message db "I`ve got a power!",0
    10.     title db "This is the title of my program",0
    11.  
    12.  
    13. .code
    14.  
    15. start:
    16.  
    17.  
    18. push 0
    19. push offset title
    20. push offset message
    21. push 0
    22. call MessageBox@16
    23.  
    24.  
    25.  
    26.  
    27.  
    28. end  start
    29.  
    30. end;
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Это research?
    MessageBox без A. includelib нету. Что за хрень?
     
  3. Wardrag

    Wardrag New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2010
    Сообщения:
    10
    Нету функции с А - это общий вариант,мистер,и на ход программы это НЕ влияет.С инклудлибами не работает также
     
  4. ziral2088

    ziral2088 New Member

    Публикаций:
    0
    Регистрация:
    16 авг 2009
    Сообщения:
    283
    Wardrag
    И что же тут не работает?
    Возможно вы нас просветите - почему у вас такой код не работает. Или хотя бы откомпилированный ехе выложите.

    П.С. А так тема ресерча неплоха, неплоха )
     
  5. Wardrag

    Wardrag New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2010
    Сообщения:
    10
    И ещё - это не консольный вариант,а standart exe
    Среда: WinAsm
     
  6. Wardrag

    Wardrag New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2010
    Сообщения:
    10
    Ассемблируется на ура,компилится - нет:



    C:\winasm\masm32\bin\Link @"C:\winasm\Projects\link.war"

    Microsoft (R) Incremental Linker Version 5.12.8078
    Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

    /SUBSYSTEM:WINDOWS /RELEASE /VERSION:4.0 "/LIBPATH:C:\winasm\masm32\lib" "C:\winasm\Projects\a5.obj" "/OUT:C:\winasm\Projects\a5.exe"
    a5.obj : error LNK2001: unresolved external symbol _MessageBoxA@16
    C:\winasm\Projects\a5.exe : fatal error LNK1120: 1 unresolved externals
     
  7. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Мы должны сделать research, для того чтобы понять, что не работает? Я давно мечтал о таком research-е.

    Пиши исчо.
     
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Wardrag
    Читай второй пост и не возникай. А вообще иди в фак.
     
  9. Wardrag

    Wardrag New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2010
    Сообщения:
    10
    Манера общения уникальна.
     
  10. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Wardrag
    Какое может быть общение с тем, кто даже хелло ворлд не в состоянии собрать и в ресёрч это дело пихает?
     
  11. Wardrag

    Wardrag New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2010
    Сообщения:
    10
    Прекрасно.Значит,ты в состоянии решить эту проблему ? Реши : )
     
  12. Wardrag

    Wardrag New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2010
    Сообщения:
    10
    А потом я тебя выслушаю по поводу моей некомпетентности.
     
  13. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Завязывай с ассемблером и программированием. Иди лучше готовься к школе.
     
  14. Wardrag

    Wardrag New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2010
    Сообщения:
    10
    Я вижу,кто-то ещё далёк от её окончания :).
     
  15. bizdon

    bizdon Member

    Публикаций:
    0
    Регистрация:
    7 апр 2009
    Сообщения:
    86
    так работает:
    Код (Text):
    1.   .386
    2.    .model flat,stdcall
    3.  
    4.    include \masm32\include\user32.inc
    5.    include \masm32\include\kernel32.inc
    6.    includelib \masm32\lib\user32.lib
    7.    includelib \masm32\lib\kernel32.lib
    8.    
    9. EXTERN MessageBoxA@16:NEAR
    10. .data
    11.    
    12.     message db "I`ve got a power!",0
    13.     titl db "This is the title of my program",0
    14.  
    15. .code
    16.  
    17. start:
    18.  
    19. push 0
    20. push offset titl
    21. push offset message
    22. push 0
    23. call MessageBox
    24. invoke ExitProcess,0
    25.  
    26. end  start
    1. добавляем инклуды для функций MessageBox и ExitProcess
    2. меняем title на что-нибудь другое (title - зарезервировано виндой)
    3. добавляем функцию ExitProcess - без неё прогррамма завершается с ошибкой