ошибки в модулях

Тема в разделе "WASM.BEGINNERS", создана пользователем Satell, 18 июн 2007.

  1. Satell

    Satell New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    23
    нужно обьединить два исходника на masm, но когда я включаю модули из второй в первую, вылезают ошибки в модуле windows.inc, огромная куча, вида:
    syntax error: in structure
    structure improperly initialized

    symbol type conflict: bool
    symbol redefenition: hinst
    если его закомментить то ошибки исчезают

    и в user32.inc ошибка symbol redefinition : wsprintfA

    т.е. как я понял какие-то структуры из windows.inc как-то перекрываются со структурами из других модулей?
    как это можно решить, можно ли вторую программу как-нибудь отдельным модулем c подпрограммой сделать, а из первой её вызывать?


    Код (Text):
    1. ;модули первой программы
    2. EXTERN  shutdown@8:NEAR
    3. EXTERN  recv@16:NEAR
    4. EXTERN  send@16:NEAR
    5. EXTERN  accept@12:NEAR
    6. EXTERN  listen@8:NEAR
    7. EXTERN  bind@12:NEAR
    8. EXTERN  closesocket@4:NEAR
    9. EXTERN  socket@12:NEAR
    10. EXTERN  CharToOemA@8:NEAR
    11. EXTERN  WSAStartup@8:NEAR
    12. EXTERN  wsprintfA:NEAR
    13. EXTERN  GetLastError@0:NEAR
    14. EXTERN  ExitProcess@4:NEAR
    15. EXTERN  lstrlenA@4:NEAR
    16. EXTERN  WriteConsoleA@20:NEAR
    17. EXTERN  GetStdHandle@4:NEAR
    18.  
    19. includelib \masm32\lib\user32.lib
    20. includelib \masm32\lib\kernel32.lib
    21. includelib \masm32\lib\ws2_32.lib
    22. includelib \masm32\lib\winmm.lib
    23. include    \masm32\include\kernel32.inc
    24. include    \masm32\include\winmm.inc
    25.  
    26. ;модули второй программы
    27. include \masm32\include\windows.inc
    28. include \masm32\include\masm32.inc
    29. include \masm32\include\user32.inc
    30. include \masm32\include\wsock32.inc
    31. includelib \masm32\Lib\masm32.lib
    32. includelib \masm32\Lib\wsock32.lib
     
  2. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    если пишешь на масме, то писать EXTERN не надо. Поубирай все дублирующиеся инклуды. И шо это за masm32.lib? Никогда ей не пользовался. Попробуй отключить. И будет тебе счастье
     
  3. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    MSoft
    в masm32.lib собраны некоторые функции работы со строками и т.д.
     
  4. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    MSoft

    Проблема не в EXTERN

    Satell
    Видимо два раза объявлено. Убери все дубликаты, в том числе и в INCLUDE, INCLUDELIB, и т.д.